From: Yi Li <yi...@analog.com>

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...@analog.com>
Signed-off-by: Mike Frysinger <vap...@gentoo.org>
---
 drivers/spi/spi_bfin5xx.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c
index 54f9dbb..d446524 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);
-- 
1.7.3.1

_______________________________________________
Uclinux-dist-devel mailing list
Uclinux-dist-devel@blackfin.uclinux.org
https://blackfin.uclinux.org/mailman/listinfo/uclinux-dist-devel

Reply via email to