From: Dmitry Torokhov Date: Thu, 7 Feb 2019 22:39:40 +0000 (-0800) Subject: Input: matrix_keypad - use flush_delayed_work() X-Git-Tag: v4.19.31~234 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=134891e124dac25020a234fd376e4117d05922e1;p=thirdparty%2Fkernel%2Fstable.git Input: matrix_keypad - use flush_delayed_work() [ Upstream commit a342083abe576db43594a32d458a61fa81f7cb32 ] We should be using flush_delayed_work() instead of flush_work() in matrix_keypad_stop() to ensure that we are not missing work that is scheduled but not yet put in the workqueue (i.e. its delay timer has not expired yet). Signed-off-by: Dmitry Torokhov Signed-off-by: Sasha Levin --- diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c index 403452ef00e6f..3d1cb7bf5e35f 100644 --- a/drivers/input/keyboard/matrix_keypad.c +++ b/drivers/input/keyboard/matrix_keypad.c @@ -222,7 +222,7 @@ static void matrix_keypad_stop(struct input_dev *dev) keypad->stopped = true; spin_unlock_irq(&keypad->lock); - flush_work(&keypad->work.work); + flush_delayed_work(&keypad->work); /* * matrix_keypad_scan() will leave IRQs enabled; * we should disable them now.