From: Yi Li <yi.li@analog.com>
Date: Mon, 7 Dec 2009 08:07:01 +0000 (+0000)
Subject: spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler
X-Git-Tag: firefly_0821_release~7613^2~3710^2~2^2~11
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7370ed6b91c37d7022a89a820b0fcd3156fa87fc;p=firefly-linux-kernel-4.4.55.git

spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler

Using disable_irq() on the IRQ whose handler we are currently executing in
can easily lead to a hang.  So use the nosync variant here.

Signed-off-by: Yi Li <yi.li@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---

diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c
index 54f9dbbc52e9..d446524aa894 100644
--- a/drivers/spi/spi_bfin5xx.c
+++ b/drivers/spi/spi_bfin5xx.c
@@ -448,7 +448,7 @@ static irqreturn_t bfin_spi_pio_irq_handler(int irq, void *dev_id)
 		/* Move to next transfer */
 		msg->state = bfin_spi_next_transfer(drv_data);
 
-		disable_irq(drv_data->spi_irq);
+		disable_irq_nosync(drv_data->spi_irq);
 
 		/* Schedule transfer tasklet */
 		tasklet_schedule(&drv_data->pump_transfers);