summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/hid/progs/hid.c
diff options
context:
space:
mode:
authorBenjamin Tissoires <bentiss@kernel.org>2024-03-15 15:44:41 +0100
committerBenjamin Tissoires <bentiss@kernel.org>2024-04-10 16:37:23 +0200
commitdb624e82c55f227b84ac9ebfa3de2f6f5fad666b (patch)
tree1438da0dcbf4dd544aff72be81546e32a51d6257 /tools/testing/selftests/hid/progs/hid.c
parentc8a1495947ffcab18d9a85144ab4abc570720e65 (diff)
downloadlinux-next-db624e82c55f227b84ac9ebfa3de2f6f5fad666b.tar.gz
linux-next-db624e82c55f227b84ac9ebfa3de2f6f5fad666b.zip
selftests/hid: Add test for hid_bpf_hw_output_report
This time we need to ensure uhid receives it, thus the new mutex and condition. Link: https://lore.kernel.org/r/20240315-b4-hid-bpf-new-funcs-v4-4-079c282469d3@kernel.org Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
Diffstat (limited to 'tools/testing/selftests/hid/progs/hid.c')
-rw-r--r--tools/testing/selftests/hid/progs/hid.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/testing/selftests/hid/progs/hid.c b/tools/testing/selftests/hid/progs/hid.c
index 1e558826b809..2c2b679a83b1 100644
--- a/tools/testing/selftests/hid/progs/hid.c
+++ b/tools/testing/selftests/hid/progs/hid.c
@@ -101,6 +101,30 @@ int hid_user_raw_request(struct hid_hw_request_syscall_args *args)
return 0;
}
+SEC("syscall")
+int hid_user_output_report(struct hid_hw_request_syscall_args *args)
+{
+ struct hid_bpf_ctx *ctx;
+ const size_t size = args->size;
+ int i, ret = 0;
+
+ if (size > sizeof(args->data))
+ return -7; /* -E2BIG */
+
+ ctx = hid_bpf_allocate_context(args->hid);
+ if (!ctx)
+ return -1; /* EPERM check */
+
+ ret = hid_bpf_hw_output_report(ctx,
+ args->data,
+ size);
+ args->retval = ret;
+
+ hid_bpf_release_context(ctx);
+
+ return 0;
+}
+
static const __u8 rdesc[] = {
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x32, /* USAGE (Z) */