浏览代码

Input: bf54x-keys - fix system hang when pressing a key

We need to use the nosync version of disable_irq so that we don't hang in
the IRQ handler as we don't ACK the interrupt until later.  This used to
work regardless, but at some point, the IRQ behavior changed.  Not sure
when exactly.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Mike Frysinger 15 年之前
父节点
当前提交
9e49f6c133
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/input/keyboard/bf54x-keys.c

+ 1 - 1
drivers/input/keyboard/bf54x-keys.c

@@ -162,7 +162,7 @@ static irqreturn_t bfin_kpad_isr(int irq, void *dev_id)
 	input_sync(input);
 
 	if (bfin_kpad_get_keypressed(bf54x_kpad)) {
-		disable_irq(bf54x_kpad->irq);
+		disable_irq_nosync(bf54x_kpad->irq);
 		bf54x_kpad->lastkey = key;
 		mod_timer(&bf54x_kpad->timer,
 			  jiffies + bf54x_kpad->keyup_test_jiffies);