HID: hid-sensor-hub: fix sleeping function called from invalid context
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Mon, 24 Mar 2014 23:25:04 +0000 (16:25 -0700)
committerJiri Kosina <jkosina@suse.cz>
Tue, 25 Mar 2014 12:11:24 +0000 (13:11 +0100)
commitf74346a04b79c9a5e50a2ee5e923b94195975d17
treee87846ec85788e4085dae6d90bed146479289b0f
parent6b5625b2af30de6ff73402ad070dd21592681821
HID: hid-sensor-hub: fix sleeping function called from invalid context

Fix issue with the sleeping calling hid_hw_request under spinlock.
When i2c is used as HID transport, this is calling kmalloc, which
can sleep. So remove call to this function while under spinlock.
 [ 1067.021961] Call Trace:
 [ 1067.021970]  [<ffffffff8192f5f2>] dump_stack+0x4d/0x6f
 [ 1067.021976]  [<ffffffff811109f2>] __might_sleep+0xd2/0xf0
 [ 1067.021981]  [<ffffffff811ea15b>] __kmalloc+0xeb/0x200
 [ 1067.021989]  [<ffffffff816e0cb3>] ? hid_alloc_report_buf+0x23/0x30
 [ 1067.021993]  [<ffffffff816e0cb3>] hid_alloc_report_buf+0x23/0x30
 [ 1067.021997]  [<ffffffff816f4cb7>] i2c_hid_request+0x57/0x110
 [ 1067.022006]  [<ffffffffa02bc61c>] sensor_hub_input_attr_get_raw_value+0xbc/0x100 [hid_sensor_hub]

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-sensor-hub.c