Benjamin Tissoires
ebc0d8093e
HID: bpf: implement HID-BPF through bpf_struct_ops
...
We do this implementation in several steps to not have the CI failing:
- first (this patch), we add struct_ops while keeping the existing infra
available
- then we change the selftests, the examples and the existing in-tree
HID-BPF programs
- then we remove the existing trace points making old HID-BPF obsolete
There are a few advantages of struct_ops over tracing:
- compatibility with sleepable programs (for hid_hw_raw_request() in
a later patch)
- a lot simpler in the kernel: it's a simple rcu protected list
- we can add more parameters to the function called without much trouble
- the "attach" is now generic through BPF-core: the caller just needs to
set hid_id and flags before calling __load().
- all the BPF tough part is not handled in BPF-core through generic
processing
- hid_bpf_ctx is now only writable where it needs be
Acked-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/r/20240608-hid_bpf_struct_ops-v3-3-6ac6ade58329@kernel.org
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
2024-06-14 11:20:16 +02:00
..
2024-05-18 12:39:20 -07:00
2024-06-14 11:20:16 +02:00
2024-06-07 11:18:11 +02:00
2024-06-04 16:16:37 +02:00
2024-04-03 13:23:23 +02:00
2023-10-25 18:33:42 +02:00
2022-12-20 15:30:35 +01:00
2021-05-05 14:29:13 +02:00
2019-05-30 11:26:32 -07:00
2022-11-21 22:17:10 +01:00
2024-02-13 11:43:55 +01:00
2020-03-13 17:33:11 +01:00
2024-06-07 11:07:40 +02:00
2019-05-21 10:50:45 +02:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2023-01-18 16:34:35 +01:00
2023-02-16 12:00:26 +01:00
2019-05-30 11:26:32 -07:00
2021-12-02 15:36:18 +01:00
2021-07-28 11:51:07 +02:00
2024-06-14 11:13:22 +02:00
2024-04-03 13:42:04 +02:00
2021-10-07 13:37:25 +02:00
2023-10-25 15:19:40 +02:00
2019-09-03 16:52:04 +02:00
2020-10-23 13:23:44 +02:00
2024-06-07 11:08:07 +02:00
2019-10-03 15:36:40 -04:00
2022-11-21 22:17:10 +01:00
2023-01-20 18:44:10 +01:00
2022-02-17 14:14:41 +01:00
2019-10-03 15:36:40 -04:00
2023-02-06 18:17:56 +01:00
2019-05-30 11:26:32 -07:00
2022-11-11 11:09:36 +01:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-08-22 17:11:58 +02:00
2023-11-21 09:37:50 +01:00
2024-04-03 13:23:23 +02:00
2023-08-14 11:35:37 +02:00
2021-05-27 15:40:34 +02:00
2019-05-30 11:26:32 -07:00
2023-09-18 17:13:01 +02:00
2021-12-20 11:25:42 +01:00
2019-10-03 15:36:40 -04:00
2023-07-09 12:47:37 +02:00
2019-05-30 11:26:32 -07:00
2024-06-07 17:02:56 +02:00
2022-12-20 15:30:35 +01:00
2024-06-07 17:02:56 +02:00
2022-11-14 23:55:12 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2024-05-07 15:17:28 +02:00
2019-05-30 11:26:32 -07:00
2022-04-21 10:28:49 +02:00
2024-04-03 13:42:04 +02:00
2023-01-17 13:44:01 +01:00
2019-10-03 15:36:40 -04:00
2024-02-13 11:43:55 +01:00
2022-11-14 23:56:52 +01:00
2017-11-02 11:10:55 +01:00
2023-04-13 17:08:45 +02:00
2021-12-02 15:36:18 +01:00
2017-11-02 11:10:55 +01:00
2019-10-03 15:36:40 -04:00
2024-06-04 16:16:37 +02:00
2024-06-04 16:16:37 +02:00
2020-08-17 11:38:49 +02:00
2023-12-27 12:08:45 +01:00
2019-01-14 20:11:01 +01:00
2023-11-21 09:27:18 +01:00
2024-04-12 17:48:53 +02:00
2022-05-06 08:29:26 +02:00
2020-11-25 14:30:33 +01:00
2023-06-08 16:09:51 +02:00
2019-05-30 11:26:32 -07:00
2024-05-06 23:14:27 +02:00
2024-06-04 16:16:37 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2024-05-23 14:17:22 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2024-03-28 10:08:59 +00:00
2020-09-03 16:18:55 +02:00
2024-05-22 10:45:12 -07:00
2019-06-05 17:30:28 +02:00
2024-05-22 10:45:12 -07:00
2024-05-03 10:45:34 +01:00
2019-06-05 17:30:28 +02:00
2019-06-05 17:30:28 +02:00
2019-05-30 11:26:35 -07:00
2022-12-20 15:35:21 +01:00
2024-05-06 23:31:24 +02:00
2019-06-05 17:36:37 +02:00
2024-02-13 11:43:55 +01:00
2022-09-20 11:36:21 +01:00
2023-12-04 16:21:05 +01:00
2022-02-16 17:12:14 +01:00
2018-06-25 15:23:40 +02:00
2019-05-30 11:26:32 -07:00
2023-10-25 18:33:42 +02:00
2023-08-14 11:23:35 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2024-04-03 13:42:04 +02:00
2019-05-30 11:26:32 -07:00
2024-04-03 13:42:04 +02:00
2021-09-25 08:20:48 -07:00
2024-04-03 13:42:04 +02:00
2019-05-30 11:26:32 -07:00
2023-08-14 11:23:35 +02:00
2024-04-03 13:42:04 +02:00
2019-05-30 11:26:32 -07:00
2021-12-02 15:36:18 +01:00
2019-05-30 11:26:32 -07:00
2024-04-03 13:42:04 +02:00
2019-05-30 11:26:32 -07:00
2023-08-14 11:23:35 +02:00
2023-08-14 11:23:35 +02:00
2019-05-30 11:26:32 -07:00
2023-08-14 11:23:35 +02:00
2022-10-18 14:42:45 +02:00
2024-01-25 09:23:22 +01:00
2021-05-05 14:21:08 +02:00
2024-05-14 13:55:14 +02:00
2023-12-22 19:16:33 +01:00
2022-02-02 15:12:22 +01:00
2019-05-30 11:26:35 -07:00
2024-04-16 09:50:37 +02:00
2019-05-30 11:26:32 -07:00
2024-05-06 23:10:00 +02:00
2023-09-18 16:44:24 +02:00
2019-05-30 11:26:32 -07:00
2022-08-25 11:38:55 +02:00
2019-05-30 11:26:32 -07:00
2021-12-14 10:50:23 +01:00
2023-03-10 18:59:51 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:19 -07:00
2022-11-25 17:39:19 +08:00
2023-10-25 16:25:47 +02:00
2023-08-24 15:57:57 +02:00
2023-10-25 16:25:47 +02:00
2024-04-03 13:51:06 +02:00
2023-01-18 09:44:57 +01:00
2023-01-18 09:47:04 +01:00
2023-01-18 09:44:57 +01:00
2023-01-18 09:44:57 +01:00
2020-07-20 12:24:41 +02:00
2022-05-11 14:19:27 +02:00
2022-08-25 11:37:21 +02:00
2022-08-25 11:37:21 +02:00
2022-08-25 11:37:21 +02:00
2022-09-20 11:35:00 +01:00
2019-05-30 11:26:32 -07:00
2022-12-25 13:38:09 -08:00
2023-08-14 11:14:42 +02:00
2022-11-04 09:57:16 +01:00
2022-11-04 09:57:16 +01:00
2024-04-12 13:38:45 +02:00
2021-09-22 11:53:07 +02:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2024-01-25 08:35:22 +01:00
2024-04-03 13:35:44 +02:00
2024-04-03 13:35:44 +02:00
2023-11-30 13:38:50 -08:00
2024-02-06 16:12:07 +01:00
2024-03-13 21:24:39 +01:00
2024-02-13 11:43:55 +01:00
2023-11-29 16:13:21 +01:00