diff --git a/drivers/input/keyboard/rk29_keys.c b/drivers/input/keyboard/rk29_keys.c index 38663abb1efd..1eca1d6a8135 100755 --- a/drivers/input/keyboard/rk29_keys.c +++ b/drivers/input/keyboard/rk29_keys.c @@ -514,6 +514,10 @@ static int keys_resume(struct device *dev) disable_irq_wake(irq); } } + preempt_disable(); + if (local_softirq_pending()) + do_softirq(); // for call resend_irqs, which may call keys_isr + preempt_enable_no_resched(); } ddata->in_suspend = false;