diff options
author | Sven Eckelmann <sven@narfation.org> | 2013-11-17 20:38:21 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2013-11-19 09:37:45 +0100 |
commit | 9f323b681139d99beb456aff08cf339b29f3c78d (patch) | |
tree | 170dfa3046d5dcddf3f5bd7ce490f8ed0b990712 /include/linux/sfi.h | |
parent | e0da5c9a49b927d9e5f62b21a7abc283e99022e2 (diff) | |
download | blackbird-op-linux-9f323b681139d99beb456aff08cf339b29f3c78d.tar.gz blackbird-op-linux-9f323b681139d99beb456aff08cf339b29f3c78d.zip |
HID: sony: Send FF commands in non-atomic context
The ff_memless has a timer running which gets run in an atomic context and
calls the play_effect callback. The callback function for sony uses the
hid_output_raw_report (overwritten by sixaxis_usb_output_raw_report) function
to handle differences in the control message format. It is not safe for an
atomic context because it may sleep later in usb_start_wait_urb.
This "scheduling while atomic" can cause the system to lock up. A workaround is
to make the force feedback state update using work_queues and use the
play_effect function only to enqueue the work item.
Reported-by: Simon Wood <simon@mungewell.org>
Reported-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/sfi.h')
0 files changed, 0 insertions, 0 deletions