From: Alexei Starovoitov Date: Fri, 25 Apr 2025 15:36:59 +0000 (-0700) Subject: Merge branch 'bpf-fix-softlock-condition-in-bpf-hashmap-interation' X-Git-Tag: v6.15-rc4~11^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6ae003adc029c74e7f97cc65dc1e79109a1f2d67;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'bpf-fix-softlock-condition-in-bpf-hashmap-interation' Brandon Kammerdiener says: ==================== This patchset fixes an endless loop condition that can occur in bpf_for_each_hash_elem, causing the core to softlock. My understanding is that a combination of RCU list deletion and insertion introduces the new element after the iteration cursor and that there is a chance that an RCU reader may in fact use this new element in iteration. The patch uses a _safe variant of the macro which gets the next element to iterate before executing the loop body for the current element. I have also added a subtest in the for_each selftest that can trigger this condition without the fix. Changes since v2: - Renaming and additional checks in selftests/bpf/prog_tests/for_each.c Changes since v1: - Added missing Signed-off-by lines to both patches ==================== Acked-by: Hou Tao Link: https://patch.msgid.link/20250424153246.141677-1-brandon.kammerdiener@intel.com Signed-off-by: Alexei Starovoitov --- 6ae003adc029c74e7f97cc65dc1e79109a1f2d67