Ver Fonte

mfd: AB3100 disable irq nosync

This will make the worker fire interrupt disable the AB3100 IRQ
without sync which resolves a race since the interrupt obviously
cannot wait for itself to complete while being handled.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Linus Walleij há 16 anos atrás
pai
commit
0ad651c94c
1 ficheiros alterados com 1 adições e 1 exclusões
  1. 1 1
      drivers/mfd/ab3100-core.c

+ 1 - 1
drivers/mfd/ab3100-core.c

@@ -422,7 +422,7 @@ static irqreturn_t ab3100_irq_handler(int irq, void *data)
 	 * stuff and we will re-enable the interrupts once th
 	 * worker has finished.
 	 */
-	disable_irq(ab3100->i2c_client->irq);
+	disable_irq_nosync(irq);
 	schedule_work(&ab3100->work);
 	return IRQ_HANDLED;
 }