]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'improve-branch_taken'
authorAlexei Starovoitov <ast@kernel.org>
Fri, 22 May 2020 00:44:25 +0000 (17:44 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 22 May 2020 00:47:33 +0000 (17:47 -0700)
commit21b45472ccfff1a36e917cbc3f07336513b350cb
tree26ac9a5812fa137c7ba21cf91a1f083ba39dbd67
parentc2d75bb25002aa2050d99c76f7894dc9223f6de5
parent46bd91107713df42c30f90e1c05ee84caa6f425a
Merge branch 'improve-branch_taken'

John Fastabend says:

====================
This series adds logic to the verifier to handle the case where a
pointer is known to be non-null but then the verifier encountesr a
instruction, such as 'if ptr == 0 goto X' or 'if ptr != 0 goto X',
where the pointer is compared against 0. Because the verifier tracks
if a pointer may be null in many cases we can improve the branch
tracking by following the case known to be true.

The first patch adds the verifier logic and patches 2-4 add the
test cases.

v1->v2: fix verifier logic to return -1 indicating both paths must
still be walked if value is not zero. Move mark_precision skip for
this case into caller of mark_precision to ensure mark_precision can
still catch other misuses. And add PTR_TYPE_BTF_ID to our list of
supported types. Finally add one more test to catch the value not
equal zero case. Thanks to Andrii for original review.

Also fixed up commit messages hopefully its better now.
====================

Acked-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>