linux_dsm_epyc7002/tools/testing
Alexei Starovoitov e688c3db7c bpf: Fix register equivalence tracking.
The 64-bit JEQ/JNE handling in reg_set_min_max() was clearing reg->id in either
true or false branch. In the case 'if (reg->id)' check was done on the other
branch the counter part register would have reg->id == 0 when called into
find_equal_scalars(). In such case the helper would incorrectly identify other
registers with id == 0 as equivalent and propagate the state incorrectly.
Fix it by preserving ID across reg_set_min_max().

In other words any kind of comparison operator on the scalar register
should preserve its ID to recognize:

r1 = r2
if (r1 == 20) {
  #1 here both r1 and r2 == 20
} else if (r2 < 20) {
  #2 here both r1 and r2 < 20
}

The patch is addressing #1 case. The #2 was working correctly already.

Fixes: 75748837b7 ("bpf: Propagate scalar ranges through register assignments.")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Tested-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20201014175608.1416-1-alexei.starovoitov@gmail.com
2020-10-15 16:05:31 +02:00
..
fault-injection
ktest Updates for ktest 5.9 2020-08-10 19:16:26 -07:00
kunit linux-kselftest-kunit-5.9-rc1 2020-08-05 10:07:39 -07:00
nvdimm tools/testing/nvdimm: Emulate firmware activation commands 2020-07-25 19:34:48 -06:00
radix-tree SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
scatterlist
selftests bpf: Fix register equivalence tracking. 2020-10-15 16:05:31 +02:00
vsock SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00