]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
selftests/hid: ensure CKI can compile our new tests on old kernels
authorBenjamin Tissoires <bentiss@kernel.org>
Mon, 1 Jul 2024 12:39:49 +0000 (14:39 +0200)
committerBenjamin Tissoires <bentiss@kernel.org>
Mon, 1 Jul 2024 12:48:03 +0000 (14:48 +0200)
In the same way than commit ae7487d112cf ("selftests/hid: ensure we can
compile the tests on kernels pre-6.3") we should expose struct hid_bpf_ops
when it's not available in vmlinux.h.

So unexpose an eventual struct hid_bpf_ops, include vmlinux.h, and
re-export struct hid_bpf_ops.

Fixes: d7696738d66b ("selftests/hid: convert the hid_bpf selftests with struct_ops")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/r/202406270328.bscLN1IF-lkp@intel.com/
Link: https://patch.msgid.link/20240701-fix-cki-v2-1-20564e2e1393@kernel.org
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
tools/testing/selftests/hid/progs/hid_bpf_helpers.h

index c72e44321764c9251b4ded6783c6cf6c72c3b7ea..cfe37f4919062271bc3a85c16d9b68fdc0d4f474 100644 (file)
@@ -7,6 +7,7 @@
 
 /* "undefine" structs and enums in vmlinux.h, because we "override" them below */
 #define hid_bpf_ctx hid_bpf_ctx___not_used
+#define hid_bpf_ops hid_bpf_ops___not_used
 #define hid_report_type hid_report_type___not_used
 #define hid_class_request hid_class_request___not_used
 #define hid_bpf_attach_flags hid_bpf_attach_flags___not_used
@@ -24,6 +25,7 @@
 #include "vmlinux.h"
 
 #undef hid_bpf_ctx
+#undef hid_bpf_ops
 #undef hid_report_type
 #undef hid_class_request
 #undef hid_bpf_attach_flags
@@ -68,6 +70,20 @@ enum hid_class_request {
        HID_REQ_SET_PROTOCOL            = 0x0B,
 };
 
+struct hid_bpf_ops {
+       int                     hid_id;
+       u32                     flags;
+       struct list_head        list;
+       int (*hid_device_event)(struct hid_bpf_ctx *ctx, enum hid_report_type report_type,
+                               u64 source);
+       int (*hid_rdesc_fixup)(struct hid_bpf_ctx *ctx);
+       int (*hid_hw_request)(struct hid_bpf_ctx *ctx, unsigned char reportnum,
+                              enum hid_report_type rtype, enum hid_class_request reqtype,
+                              u64 source);
+       int (*hid_hw_output_report)(struct hid_bpf_ctx *ctx, u64 source);
+       struct hid_device *hdev;
+};
+
 #ifndef BPF_F_BEFORE
 #define BPF_F_BEFORE (1U << 3)
 #endif