]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/hid: add test for attaching multiple time the same struct_ops
authorBenjamin Tissoires <bentiss@kernel.org>
Tue, 23 Jul 2024 16:21:54 +0000 (18:21 +0200)
committerBenjamin Tissoires <bentiss@kernel.org>
Wed, 24 Jul 2024 16:27:22 +0000 (18:27 +0200)
Turns out that we would en up in a bad state if we attempt to attach
twice the same HID-BPF struct_ops, so have a test for it.

Link: https://patch.msgid.link/20240723-fix-6-11-bpf-v1-4-b9d770346784@kernel.org
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
tools/testing/selftests/hid/hid_bpf.c

index 9c935fd0dffc4cf69793be5e6b6267d71cd945c5..75b7b4ef6cfaa7e324a043fb97f7a720804aff55 100644 (file)
@@ -694,6 +694,24 @@ TEST_F(hid_bpf, subprog_raw_event)
        ASSERT_EQ(buf[2], 52);
 }
 
+/*
+ * Attach hid_first_event to the given uhid device,
+ * attempt at re-attaching it, we should not lock and
+ * return an invalid struct bpf_link
+ */
+TEST_F(hid_bpf, multiple_attach)
+{
+       const struct test_program progs[] = {
+               { .name = "hid_first_event" },
+       };
+       struct bpf_link *link;
+
+       LOAD_PROGRAMS(progs);
+
+       link = bpf_map__attach_struct_ops(self->skel->maps.first_event);
+       ASSERT_NULL(link) TH_LOG("unexpected return value when re-attaching the struct_ops");
+}
+
 /*
  * Ensures that we can attach/detach programs
  */