Jean-Baptiste Maneyrol 6296f4a8eb HID: i2c-hid: fix race condition reading reports
Current driver uses a common buffer for reading reports either
synchronously in i2c_hid_get_raw_report() and asynchronously in
the interrupt handler.
There is race condition if an interrupt arrives immediately after
the report is received in i2c_hid_get_raw_report(); the common
buffer is modified by the interrupt handler with the new report
and then i2c_hid_get_raw_report() proceed using wrong data.

Fix it by using a separate buffers for synchronous reports.

Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
[Antonio Borneo: cleanup, rebase to v3.17, submit mainline]
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2014-11-25 15:24:54 +01:00
..
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2014-08-21 10:43:28 -05:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-04-24 16:32:27 +02:00
2014-08-21 10:43:28 -05:00
2013-01-03 10:27:31 +01:00
2014-08-21 10:43:28 -05:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2014-06-27 00:33:44 +02:00
2013-01-03 10:27:31 +01:00
2014-08-21 10:43:28 -05:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2013-01-03 10:27:31 +01:00
2014-10-01 20:58:46 +02:00