Re: [PATCH v3] HID: hidraw - add HIDIOCREVOKE ioctl

From: Jiri Kosina
Date: Tue Aug 20 2024 - 20:31:42 EST


On Mon, 12 Aug 2024, Peter Hutterer wrote:

> There is a need for userspace applications to open HID devices directly.
> Use-cases include configuration of gaming mice or direct access to
> joystick devices. The latter is currently handled by the uaccess tag in
> systemd, other devices include more custom/local configurations or just
> sudo.
>
> A better approach is what we already have for evdev devices: give the
> application a file descriptor and revoke it when it may no longer access
> that device.
>
> This patch is the hidraw equivalent to the EVIOCREVOKE ioctl, see
> commit c7dc65737c9a607d3e6f8478659876074ad129b8 for full details.
>
> An MR for systemd-logind has been filed here:
> https://github.com/systemd/systemd/pull/33970
>
> hidraw_is_revoked() and hidraw_open_errno() are both defined as weak
> functions to allow for a BPF program to deny access to a /dev/hidraw
> device. The function returns 0 on success or a negative errno
> otherwise that is returned to the caller.
>
> As a use-case example, a gamepad-managing process could attach a BPF
> program that defaults to -EACCESS for all hidraw devices except those
> with ID_INPUT_JOYSTICK set by udev.
>
> Signed-off-by: Peter Hutterer <peter.hutterer@xxxxxxxxx>

Thanks Peter. Now queued in hid.git#for-6.12/hidraw.

--
Jiri Kosina
SUSE Labs