linux/drivers/input
Zhang Bo db033f33e7 Input: matrix_keypad - fix race when disabling interrupts
commit ea4f7bd2ac upstream.

If matrix_keypad_stop() is executing and the keypad interrupt is triggered,
disable_row_irqs() may be called by both matrix_keypad_interrupt() and
matrix_keypad_stop() at the same time, causing interrupts to be disabled
twice and the keypad being "stuck" after resuming.

Take lock when setting keypad->stopped to ensure that ISR will not race
with matrix_keypad_stop() disabling interrupts.

Signed-off-by: Zhang Bo <zbsdta@126.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2018-06-16 22:22:12 +01:00
..
gameport Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
joystick Input: xpad - validate USB endpoint type during probe 2017-11-26 13:50:36 +00:00
keyboard Input: matrix_keypad - fix race when disabling interrupts 2018-06-16 22:22:12 +01:00
misc Input: twl6040-vibra - fix child-node lookup 2018-03-03 15:52:17 +00:00
mouse Input: trackpoint - force 3 buttons if 0 button is reported 2018-03-03 15:52:27 +00:00
serio Input: i8042 - add Gigabyte P57 to the keyboard reset table 2017-11-26 13:50:38 +00:00
tablet Input: gtco - fix potential out-of-bound access 2017-11-26 13:50:39 +00:00
touchscreen Input: mms114 - fix license module information 2018-06-16 22:22:05 +01:00
apm-power.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
evbug.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
evdev.c Input: evdev - do not report errors form flush() 2015-09-29 16:44:46 +01:00
ff-core.c Input: uinput - avoid FF flush when destroying device 2018-01-01 20:51:36 +00:00
ff-memless.c Input: random formatting fixes 2012-08-21 22:29:49 -07:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-mt.c Input: MT - handle semi-mt devices in core 2013-04-07 21:02:32 -07:00
input-polldev.c Input: implement managed polled input devices 2014-05-14 16:40:04 -07:00
input.c Input: fix defuzzing logic 2014-07-20 13:17:42 -07:00
joydev.c Input: fix use-after-free introduced with dynamic minor changes 2012-10-22 08:50:37 +03:00
Kconfig Input: mousedev - allow disabling even without CONFIG_EXPERT 2013-10-31 08:46:07 -07:00
Makefile Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
matrix-keymap.c input: Export matrix_keypad_parse_of_params() 2013-04-19 00:31:13 +02:00
mousedev.c Input: mousedev - fix race when creating mixed device 2014-03-29 14:44:23 -07:00
sparse-keymap.c treewide: Fix typo in Documentation/DocBook 2014-02-19 14:58:17 +01:00