Input: fix locking in memoryless force-feedback devices
Now that input core acquires dev->event_lock spinlock and disables interrupts when propagating input events, using spin_lock_bh() in ff-memless driver is not allowed. Actually, the timer_lock itself is not needed anymore, we should simply use dev->event_lock as well. Also do a small cleanup in force-feedback core. Reported-by: kerneloops.org Reported-by: http://www.kerneloops.org/searchweek.php?search=ml_ff_set_gain Reported-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
@@ -1377,6 +1377,10 @@ extern struct class input_class;
|
||||
* methods; erase() is optional. set_gain() and set_autocenter() need
|
||||
* only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER
|
||||
* bits.
|
||||
*
|
||||
* Note that playback(), set_gain() and set_autocenter() are called with
|
||||
* dev->event_lock spinlock held and interrupts off and thus may not
|
||||
* sleep.
|
||||
*/
|
||||
struct ff_device {
|
||||
int (*upload)(struct input_dev *dev, struct ff_effect *effect,
|
||||
|
Reference in New Issue
Block a user