spi/bfin_spi: use dma_disable_irq_nosync() in irq handler
authorBarry Song <barry.song@analog.com>
Fri, 22 Jan 2010 10:07:30 +0000 (10:07 +0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 18 Oct 2010 06:49:40 +0000 (02:49 -0400)
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: Barry Song <barry.song@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
drivers/spi/spi_bfin5xx.c

index b3450b7..18b313a 100644 (file)
@@ -547,7 +547,7 @@ static irqreturn_t bfin_spi_dma_irq_handler(int irq, void *dev_id)
        dev_dbg(&drv_data->pdev->dev,
                "disable dma channel irq%d\n",
                drv_data->dma_channel);
-       dma_disable_irq(drv_data->dma_channel);
+       dma_disable_irq_nosync(drv_data->dma_channel);
 
        return IRQ_HANDLED;
 }