[PATCH 4/4] HID: do not bypass HID-BPF when setting LEDs

From: Benjamin Tissoires

Date: Fri Mar 13 2026 - 03:41:51 EST


Right now LED workers are using the special .request() which is
asynchronous but bypasses entirely HID-BPF. This means we can not tweak
a HID keyboard.

Drop the asynchronous (only used by usbhid), and rely on the common
implementation.

Signed-off-by: Benjamin Tissoires <bentiss@xxxxxxxxxx>
---
drivers/hid/hid-input.c | 5 -----
1 file changed, 5 deletions(-)

diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index eb84f63c51b8..f0a77a4b2a42 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1853,11 +1853,6 @@ static void hidinput_led_worker(struct work_struct *work)

report = field->report;

- /* use custom SET_REPORT request if possible (asynchronous) */
- if (hid->ll_driver->request)
- return hid->ll_driver->request(hid, report, HID_REQ_SET_REPORT);
-
- /* fall back to generic raw-output-report */
len = hid_report_len(report);
buf = hid_alloc_report_buf(report, GFP_KERNEL);
if (!buf)

--
2.52.0