Hi, and here comes the v11 of the HID-BPF series. Again, for a full explanation of HID-BPF, please refer to the last patch in this series (14/14). Now that the bpf-core changes are all merged in v6.1, it is time to have that series entirely relying on HID, so it can get merged into the HID tree. Compared to v10, the most notable change is in the selftests and the samples: they are now namespaced into hid, not bpf. This means that HID-BPF has no more conflicts with the bpf tree. One other interesting change is in patch 4/14. I managed to reduce the scope of the embedded bpf programs, by tricking the refcount. I am planning on submitting an RFC for embedding those changes in bpf core (a map that doesn't increment refcount and a cleanup mechanism) but this can come as a later improvement. This new kind of maps and mechanisms might also be useful for other subsystems. Cheers, Benjamin Benjamin Tissoires (14): HID: Kconfig: split HID support and hid-core compilation HID: initial BPF implementation selftests: add tests for the HID-bpf initial implementation HID: bpf jmp table: simplify the logic of cleaning up programs HID: bpf: allocate data memory for device_event BPF programs selftests/hid: add test to change the report size HID: bpf: introduce hid_hw_request() selftests/hid: add tests for bpf_hid_hw_request HID: bpf: allow to change the report descriptor selftests/hid: add report descriptor fixup tests selftests/hid: Add a test for BPF_F_INSERT_HEAD samples/hid: add new hid BPF example samples/hid: add Surface Dial example Documentation: add HID-BPF docs Documentation/hid/hid-bpf.rst | 513 +++++++++++ Documentation/hid/index.rst | 1 + MAINTAINERS | 3 + drivers/Makefile | 2 +- drivers/hid/Kconfig | 20 +- drivers/hid/Makefile | 2 + drivers/hid/bpf/Kconfig | 17 + drivers/hid/bpf/Makefile | 11 + drivers/hid/bpf/entrypoints/Makefile | 93 ++ drivers/hid/bpf/entrypoints/README | 4 + drivers/hid/bpf/entrypoints/entrypoints.bpf.c | 34 + .../hid/bpf/entrypoints/entrypoints.lskel.h | 368 ++++++++ drivers/hid/bpf/hid_bpf_dispatch.c | 526 +++++++++++ drivers/hid/bpf/hid_bpf_dispatch.h | 28 + drivers/hid/bpf/hid_bpf_jmp_table.c | 572 ++++++++++++ drivers/hid/hid-core.c | 32 +- include/linux/hid.h | 5 + include/linux/hid_bpf.h | 148 +++ include/uapi/linux/hid_bpf.h | 25 + samples/hid/.gitignore | 8 + samples/hid/Makefile | 246 +++++ samples/hid/Makefile.target | 75 ++ samples/hid/hid_mouse.bpf.c | 134 +++ samples/hid/hid_mouse.c | 160 ++++ samples/hid/hid_surface_dial.bpf.c | 161 ++++ samples/hid/hid_surface_dial.c | 231 +++++ tools/include/uapi/linux/hid.h | 62 ++ tools/include/uapi/linux/hid_bpf.h | 25 + tools/testing/selftests/Makefile | 1 + tools/testing/selftests/hid/.gitignore | 4 + tools/testing/selftests/hid/Makefile | 242 +++++ tools/testing/selftests/hid/config | 20 + tools/testing/selftests/hid/hid_bpf.c | 846 ++++++++++++++++++ tools/testing/selftests/hid/progs/hid.c | 206 +++++ 34 files changed, 4815 insertions(+), 10 deletions(-) create mode 100644 Documentation/hid/hid-bpf.rst create mode 100644 drivers/hid/bpf/Kconfig create mode 100644 drivers/hid/bpf/Makefile create mode 100644 drivers/hid/bpf/entrypoints/Makefile create mode 100644 drivers/hid/bpf/entrypoints/README create mode 100644 drivers/hid/bpf/entrypoints/entrypoints.bpf.c create mode 100644 drivers/hid/bpf/entrypoints/entrypoints.lskel.h create mode 100644 drivers/hid/bpf/hid_bpf_dispatch.c create mode 100644 drivers/hid/bpf/hid_bpf_dispatch.h create mode 100644 drivers/hid/bpf/hid_bpf_jmp_table.c create mode 100644 include/linux/hid_bpf.h create mode 100644 include/uapi/linux/hid_bpf.h create mode 100644 samples/hid/.gitignore create mode 100644 samples/hid/Makefile create mode 100644 samples/hid/Makefile.target create mode 100644 samples/hid/hid_mouse.bpf.c create mode 100644 samples/hid/hid_mouse.c create mode 100644 samples/hid/hid_surface_dial.bpf.c create mode 100644 samples/hid/hid_surface_dial.c create mode 100644 tools/include/uapi/linux/hid.h create mode 100644 tools/include/uapi/linux/hid_bpf.h create mode 100644 tools/testing/selftests/hid/.gitignore create mode 100644 tools/testing/selftests/hid/Makefile create mode 100644 tools/testing/selftests/hid/config create mode 100644 tools/testing/selftests/hid/hid_bpf.c create mode 100644 tools/testing/selftests/hid/progs/hid.c -- 2.36.1