lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221025093458.457089-1-benjamin.tissoires@redhat.com>
Date:   Tue, 25 Oct 2022 11:34:44 +0200
From:   Benjamin Tissoires <benjamin.tissoires@...hat.com>
To:     Greg KH <gregkh@...uxfoundation.org>,
        Jiri Kosina <jikos@...nel.org>,
        Jonathan Corbet <corbet@....net>, Shuah Khan <shuah@...nel.org>
Cc:     Tero Kristo <tero.kristo@...ux.intel.com>,
        linux-kernel@...r.kernel.org, linux-input@...r.kernel.org,
        bpf@...r.kernel.org, linux-kselftest@...r.kernel.org,
        linux-doc@...r.kernel.org,
        Benjamin Tissoires <benjamin.tissoires@...hat.com>
Subject: [PATCH hid v11 00/14] Introduce eBPF support for HID devices

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ