OSDN Git Service

Merge branch 'jmp32-reg-bounds'
authorAlexei Starovoitov <ast@kernel.org>
Fri, 22 Nov 2019 18:29:38 +0000 (10:29 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 25 Nov 2019 00:58:46 +0000 (16:58 -0800)
commit161f3cbcda06aa70faed6b703066fedbd7653e23
treedc410e35bdb263512e095f64aed2456b19e132d8
parent6147a140c99f1ded2b519dfbed17e781e5861bf3
parent260cb5df9d16c5715b32d73cc8af26ad9a17a792
Merge branch 'jmp32-reg-bounds'

Yonghong Song says:

====================
With latest llvm, bpf selftest test_progs, which has +alu32 enabled, failed for
strobemeta.o and a few other subtests. The reason is due to that
verifier did not provide better var_off.mask after jmp32 instructions.
This patch set addressed this issue and after the fix, test_progs passed
with alu32.

Patch #1 provided detailed explanation of the problem and the fix.
Patch #2 added three tests in test_verifier.

Changelog:
  v1 -> v2:
    - do not directly manipulate tnum.{value,mask} in __reg_bound_offset32(),
      using tnum_lshift/tnum_rshift functions instead
    - do __reg_bound_offset32() after regular 64bit __reg_bound_offset()
      since the latter may give a better upper 32bit var_off, which can
      be inherited by __reg_bound_offset32().
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>