]> www.infradead.org Git - users/willy/xarray.git/commit
HID: i2c-hid: ensure various commands do not interfere with each other
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 9 Sep 2024 20:37:40 +0000 (13:37 -0700)
committerJiri Kosina <jkosina@suse.com>
Thu, 12 Sep 2024 12:11:36 +0000 (14:11 +0200)
commitb4ed18a3d56eabd18cfd9841ff05111e3cfbe8f9
tree5c06a01be79eef7cb3fb3f0837271e5b82e3a9d0
parent6e4436539ae182dc86d57d13849862bcafaa4709
HID: i2c-hid: ensure various commands do not interfere with each other

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>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/i2c-hid/i2c-hid-core.c