Re: [PATCH] HID: i2c-hid: ensure various commands do not interfere with each other
From: Jiri Kosina <jikos@kernel.org>
Date: 2024-09-11 13:27:35
Also in:
lkml
From: Jiri Kosina <jikos@kernel.org>
Date: 2024-09-11 13:27:35
Also in:
lkml
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@gmail.com>
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