Re: [PATCH] HID: i2c-hid: ensure various commands do not interfere with each other

From: Jiri Kosina
Date: Wed Sep 11 2024 - 09:30:09 EST


On Mon, 9 Sep 2024, Dmitry Torokhov wrote:

> i2c-hid uses 2 shared buffers: command and "raw" input buffer for
> sending requests to peripherals and read data from peripherals when
> executing variety of commands. Such commands include reading of HID
> registers, requesting particular power mode, getting and setting
> reports and so on. Because all such requests use the same 2 buffers
> they should not execute simultaneously.
>
> Fix this by introducing "cmd_lock" mutex and acquire it whenever
> we needs to access ihid->cmdbuf or idid->rawbuf.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

Thanks for the fix, Dmitry. Out of curiosity, did you find it by code
inspection, or have you actually seen it happening for real, making the
driver misbehave?

Thanks,

--
Jiri Kosina
SUSE Labs