diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2022-11-03 18:57:51 +0300 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2022-11-15 18:28:39 +0300 |
commit | ad190df11a024c1214fbc8dcaab72c592c79d9b5 (patch) | |
tree | 3ff7fc64a04187c78f64a37408001b93186de03a /drivers/hid/hid-core.c | |
parent | 4f7153cf461ed0f78d8da8c9fd02d38728a76b90 (diff) | |
download | linux-ad190df11a024c1214fbc8dcaab72c592c79d9b5.tar.xz |
HID: bpf: allow to change the report descriptor
Add a new tracepoint hid_bpf_rdesc_fixup() so we can trigger a
report descriptor fixup in the bpf world.
Whenever the program gets attached/detached, the device is reconnected
meaning that userspace will see it disappearing and reappearing with
the new report descriptor.
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r-- | drivers/hid/hid-core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 6bf47e352f23..fa4436b8101e 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1218,7 +1218,8 @@ int hid_open_report(struct hid_device *device) return -ENODEV; size = device->dev_rsize; - buf = kmemdup(start, size, GFP_KERNEL); + /* call_hid_bpf_rdesc_fixup() ensures we work on a copy of rdesc */ + buf = call_hid_bpf_rdesc_fixup(device, start, &size); if (buf == NULL) return -ENOMEM; |