Zhang Bo ea4f7bd2ac Input: matrix_keypad - fix race when disabling interrupts
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>
2018-02-09 16:15:45 -08:00
..
2017-11-03 09:02:30 -07:00
2017-11-03 09:02:30 -07:00
2017-11-03 09:14:22 -07:00
2017-11-07 18:11:56 -08:00
2017-11-03 09:19:20 -07:00
2017-08-29 13:46:35 +02:00
2017-11-03 09:02:30 -07:00
2017-11-03 10:26:40 -07:00