From: Yi Li 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: v2.6.37-rc1~187^2~2^2~11 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7370ed6b91c37d7022a89a820b0fcd3156fa87fc;p=karo-tx-linux.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 Signed-off-by: Mike Frysinger --- 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);