• Srinivas Pandruvada's avatar
    HID: hid-sensor-hub: fix sleeping function called from invalid context · ae432ba6
    Srinivas Pandruvada authored
    commit f74346a0 upstream.
    
    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: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    Cc: Oliver Neukum <ONeukum@suse.com>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    ae432ba6
hid-sensor-hub.c 16.9 KB