[PATCH HID for-next v3 0/5] HID: bpf: remove the need for ALLOW_ERROR_INJECTION and Kconfig fixes

From: Benjamin Tissoires
Date: Tue Dec 06 2022 - 10:06:55 EST


Hi,

This is a new version of the ALLOW_ERROR_INJECTION hack removal.

Compared to v2, I followed the review from Alexei which cleaned up the
code a little bit.

I also got a kbuild test bot complaining[3] so add a fix for that too.

For reference, here is the previous cover letter:

So this patch series aims at solving both [0] and [1].

The first one is bpf related and concerns the ALLOW_ERROR_INJECTION API.
It is considered as a hack to begin with, so introduce a proper kernel
API to declare when a BPF hook can have its return value changed.

The second one is related to the fact that
DYNAMIC_FTRACE_WITH_DIRECT_CALLS is currently not enabled on arm64, and
that means that the current HID-BPF implementation doesn't work there
for now.

The first patch actually touches the bpf core code, but it would be
easier if we could merge it through the hid tree in the for-6.2/hid-bpf
branch once we get the proper acks.

Cheers,
Benjamin

[0] https://lore.kernel.org/all/20221121104403.1545f9b5@xxxxxxxxxxxxxxxxxx/
[1] https://lore.kernel.org/r/CABRcYmKyRchQhabi1Vd9RcMQFCcb=EtWyEbFDFRTc-L-U8WhgA@xxxxxxxxxxxxxx
[3] https://lore.kernel.org/all/202212060216.a6X8Py5H-lkp@xxxxxxxxx/

Benjamin Tissoires (5):
bpf: do not rely on ALLOW_ERROR_INJECTION for fmod_ret
HID: bpf: do not rely on ALLOW_ERROR_INJECTION
HID: bpf: enforce HID_BPF dependencies
selftests: hid: ensures we have the proper requirements in config
kselftests: hid: fix missing headers_install step

drivers/hid/bpf/Kconfig | 3 ++-
drivers/hid/bpf/hid_bpf_dispatch.c | 20 +++++++++++++++++--
drivers/hid/bpf/hid_bpf_jmp_table.c | 1 -
include/linux/btf.h | 2 ++
kernel/bpf/btf.c | 30 +++++++++++++++++++++++-----
kernel/bpf/verifier.c | 17 ++++++++++++++--
net/bpf/test_run.c | 14 ++++++++++---
tools/testing/selftests/hid/Makefile | 26 +++++++++++-------------
tools/testing/selftests/hid/config | 1 +
9 files changed, 86 insertions(+), 28 deletions(-)

--
2.38.1