Since commit 31158ad02ddb ("rqspinlock: Add deadlock detection and recovery") the updated path on re-entrancy now reports deadlock via -EDEADLK instead of the previous -EBUSY.
The selftest is updated to align with expected errno with the kernel’s current behavior.
Signed-off-by: Saket Kumar Bhaskar skb99@linux.ibm.com --- tools/testing/selftests/bpf/prog_tests/htab_update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/htab_update.c b/tools/testing/selftests/bpf/prog_tests/htab_update.c index 2bc85f4814f4..98d52bb1446f 100644 --- a/tools/testing/selftests/bpf/prog_tests/htab_update.c +++ b/tools/testing/selftests/bpf/prog_tests/htab_update.c @@ -40,7 +40,7 @@ static void test_reenter_update(void) if (!ASSERT_OK(err, "add element")) goto out;
- ASSERT_EQ(skel->bss->update_err, -EBUSY, "no reentrancy"); + ASSERT_EQ(skel->bss->update_err, -EDEADLK, "no reentrancy"); out: htab_update__destroy(skel); }
On Wed, Nov 5, 2025 at 9:26 PM Saket Kumar Bhaskar skb99@linux.ibm.com wrote:
Since commit 31158ad02ddb ("rqspinlock: Add deadlock detection and recovery") the updated path on re-entrancy now reports deadlock via -EDEADLK instead of the previous -EBUSY.
The selftest is updated to align with expected errno with the kernel’s current behavior.
Signed-off-by: Saket Kumar Bhaskar skb99@linux.ibm.com
tools/testing/selftests/bpf/prog_tests/htab_update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/htab_update.c b/tools/testing/selftests/bpf/prog_tests/htab_update.c index 2bc85f4814f4..98d52bb1446f 100644 --- a/tools/testing/selftests/bpf/prog_tests/htab_update.c +++ b/tools/testing/selftests/bpf/prog_tests/htab_update.c @@ -40,7 +40,7 @@ static void test_reenter_update(void) if (!ASSERT_OK(err, "add element")) goto out;
ASSERT_EQ(skel->bss->update_err, -EBUSY, "no reentrancy");
ASSERT_EQ(skel->bss->update_err, -EDEADLK, "no reentrancy");
Makes sense, but looks like the test was broken for quite some time. It fails with /* lookup_elem_raw() may be inlined and find_kernel_btf_id() will return -ESRCH */ bpf_program__set_autoload(skel->progs.lookup_elem_raw, true); err = htab_update__load(skel); if (!ASSERT_TRUE(!err || err == -ESRCH, "htab_update__load") || err)
before reaching deadlk check. Pls make it more robust. __pcpu_freelist_pop() might be better alternative then lookup_elem_raw().
pw-bot: cr
linux-kselftest-mirror@lists.linaro.org