linux-stable/drivers/input/keyboard
Zhang Bo 89d3fccd8b 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>
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-15 10:54:32 +01:00
..
adc-keys.c
adp5520-keys.c
adp5588-keys.c gpio: adp5588: move header file out of I2C realm 2017-05-29 13:36:45 +02:00
adp5589-keys.c
amikbd.c
atakbd.c
atkbd.c Input: iatkbd - constify serio_device_id 2017-08-18 17:14:19 -07:00
bcm-keypad.c
bf54x-keys.c
cap11xx.c
clps711x-keypad.c
cros_ec_keyb.c Input: cros_ec_keyb - remove extraneous 'const' 2017-05-11 17:41:01 -07:00
davinci_keyscan.c
dlink-dir685-touchkeys.c Input: add D-Link DIR-685 touchkeys driver 2017-06-05 15:35:32 -07:00
ep93xx_keypad.c
goldfish_events.c
gpio_keys.c Merge branch 'bind_unbind' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core into next 2017-07-24 16:51:18 -07:00
gpio_keys_polled.c
hil_kbd.c Input: hil_kbd - constify serio_device_id 2017-08-18 17:14:20 -07:00
hilkbd.c parisc/input/hilkbd: Fix section mismatches 2017-08-22 16:34:37 +02:00
hpps2atkbd.h
imx_keypad.c
ipaq-micro-keys.c
jornada680_kbd.c
jornada720_kbd.c
Kconfig Input: add D-Link DIR-685 touchkeys driver 2017-06-05 15:35:32 -07:00
lkkbd.c Input: lkkbd - constify serio_device_id 2017-08-18 17:14:21 -07:00
lm8323.c Input: lm8323 - move header file out of I2C realm 2017-05-22 17:23:46 -07:00
lm8333.c
locomokbd.c Input: locomokbd - use setup_timer 2017-04-10 20:41:40 -07:00
lpc32xx-keys.c
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
maple_keyb.c
matrix_keypad.c Input: matrix_keypad - fix race when disabling interrupts 2018-03-15 10:54:32 +01:00
max7359_keypad.c
mcs_touchkey.c Input: mcs - move header file out of I2C realm 2017-05-22 17:26:57 -07:00
mpr121_touchkey.c
newtonkbd.c Input: newtonkbd - constify serio_device_id 2017-08-18 17:14:58 -07:00
nomadik-ske-keypad.c
nspire-keypad.c
omap-keypad.c
omap4-keypad.c Input: omap-keypad - fix error handling code 2017-04-10 20:51:49 -07:00
opencores-kbd.c
pmic8xxx-keypad.c
pxa27x_keypad.c Input: pxa27x_keypad - handle return value of clk_prepare_enable 2017-08-31 11:57:35 -07:00
pxa930_rotary.c
qt1070.c Input: qt1070 - add OF device ID table 2017-03-23 14:46:33 -07:00
qt2160.c
samsung-keypad.c
sh_keysc.c
snvs_pwrkey.c
spear-keyboard.c
st-keyscan.c
stmpe-keypad.c
stowaway.c Input: stowaway - constify serio_device_id 2017-08-18 17:15:00 -07:00
sun4i-lradc-keys.c
sunkbd.c Input: sunkbd - constify serio_device_id 2017-08-18 17:15:04 -07:00
tc3589x-keypad.c
tca6416-keypad.c
tca8418_keypad.c Input: tca8418 - enable interrupt after it has been requested 2017-10-19 16:50:20 -07:00
tegra-kbc.c Input: tegra-kbc - handle return value of clk_prepare_enable 2017-08-31 11:57:27 -07:00
tm2-touchkey.c Input: tm2-touchkey - use LEN_ON as boolean value instead of LED_FULL 2017-06-01 22:08:05 -07:00
twl4030_keypad.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
w90p910_keypad.c
xtkbd.c Input: xtkbd - constify serio_device_id 2017-08-18 17:15:07 -07:00