summaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorYi Li <yi.li@analog.com>2009-12-07 09:07:01 +0100
committerMike Frysinger <vapier@gentoo.org>2010-10-18 08:49:38 +0200
commit7370ed6b91c37d7022a89a820b0fcd3156fa87fc (patch)
tree7a0eb591a99fb634a2bcc18fa16534ca8df68918 /drivers/spi
parentspi/bfin_spi: sync hardware state before reprogramming everything (diff)
downloadlinux-7370ed6b91c37d7022a89a820b0fcd3156fa87fc.tar.xz
linux-7370ed6b91c37d7022a89a820b0fcd3156fa87fc.zip
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>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/spi_bfin5xx.c2
1 files changed, 1 insertions, 1 deletions
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);