amd-xgbe: Use disable_irq_nosync when in IRQ context
authorLendacky, Thomas <Thomas.Lendacky@amd.com>
Tue, 9 Dec 2014 20:54:08 +0000 (14:54 -0600)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Dec 2014 02:48:01 +0000 (21:48 -0500)
The disable_irq_nosync function, not the disable_irq function, must be
used to disable the DMA channel interrupt from within the interrupt
service routine. Change the disable_irq call to disable_irq_nosync.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amd/xgbe/xgbe-drv.c

index bedfdb1c430db75c9e5268cc65d036ef940f1f0c..bf6bf1118b0fbc5beabaaf84cba7999da7a26914 100644 (file)
@@ -396,7 +396,7 @@ static irqreturn_t xgbe_dma_isr(int irq, void *data)
         */
        if (napi_schedule_prep(&channel->napi)) {
                /* Disable Tx and Rx interrupts */
-               disable_irq(channel->dma_irq);
+               disable_irq_nosync(channel->dma_irq);
 
                /* Turn on polling */
                __napi_schedule(&channel->napi);