Hi everyone, New version. There is one extra patch which implements some code improvements suggested by Andrii. Thanks for your reviews! Regards, Cupertino Changes from v1: - Reordered patches in the series. - Fix refactor to be acurate with original code. - Fixed other mentioned small problems. Changes from v2: - Added a patch to replace mark_reg_unknowon for __mark_reg_unknown in the context of range computation. - Reverted implementation of refactor to v1 which used a simpler boolean return value in check function. - Further relaxed MUL to allow it to still compute a range when neither of its registers is a known value. - Simplified tests based on Eduards example. - Added messages in selftest commits. Changes from v3: - Improved commit message of patch nr 1. - Coding style fixes. - Improve XOR and OR tests. - Made function calls to pass struct bpf_reg_state pointer instead. - Improved final code as a last patch. Cupertino Miranda (7): bpf/verifier: replace calls to mark_reg_unknown. bpf/verifier: refactor checks for range computation bpf/verifier: improve XOR and OR range computation selftests/bpf: XOR and OR range computation tests. bpf/verifier: relax MUL range computation check selftests/bpf: MUL range computation tests. bpf/verifier: improve code after range computation recent changes. kernel/bpf/verifier.c | 111 ++++++++---------- .../selftests/bpf/progs/verifier_bounds.c | 63 ++++++++++ 2 files changed, 109 insertions(+), 65 deletions(-) -- 2.39.2