OSDN Git Service

HID: cp2112: fix sleep-while-atomic
authorJohan Hovold <johan@kernel.org>
Mon, 30 Jan 2017 10:26:38 +0000 (11:26 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Feb 2017 07:08:25 +0000 (08:08 +0100)
commita18c4584a48931e8048508469bcdb53c6082221a
treebd7347c8e2e159e6e4b68245d37a2cc7f971aacf
parentdfd713307adb8747b47cb7bf6c08cb887b857c43
HID: cp2112: fix sleep-while-atomic

commit 7a7b5df84b6b4e5d599c7289526eed96541a0654 upstream.

A recent commit fixing DMA-buffers on stack added a shared transfer
buffer protected by a spinlock. This is broken as the USB HID request
callbacks can sleep. Fix this up by replacing the spinlock with a mutex.

Fixes: 1ffb3c40ffb5 ("HID: cp2112: make transfer buffers DMA capable")
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hid/hid-cp2112.c