enic: use napi_schedule_irqoff()
authorGovindarajulu Varadarajan <_govind@gmx.com>
Sat, 22 Nov 2014 19:52:51 +0000 (01:22 +0530)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Nov 2014 19:31:25 +0000 (14:31 -0500)
enic_isr_legacy(), enic_isr_msix() & enic_isr_msi() run from hard
interrupt context.

They can use napi_schedule_irqoff() instead of napi_schedule()

Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cisco/enic/enic_main.c

index b9cda2fc5ae8df9a46de116402b2315987549622..b42a48097dbd85cb9a2cc0500fca7b1a657e0d7b 100644 (file)
@@ -283,12 +283,10 @@ static irqreturn_t enic_isr_legacy(int irq, void *data)
                return IRQ_HANDLED;
        }
 
-       if (ENIC_TEST_INTR(pba, io_intr)) {
-               if (napi_schedule_prep(&enic->napi[0]))
-                       __napi_schedule(&enic->napi[0]);
-       } else {
+       if (ENIC_TEST_INTR(pba, io_intr))
+               napi_schedule_irqoff(&enic->napi[0]);
+       else
                vnic_intr_unmask(&enic->intr[io_intr]);
-       }
 
        return IRQ_HANDLED;
 }
@@ -313,7 +311,7 @@ static irqreturn_t enic_isr_msi(int irq, void *data)
         * writes).
         */
 
-       napi_schedule(&enic->napi[0]);
+       napi_schedule_irqoff(&enic->napi[0]);
 
        return IRQ_HANDLED;
 }
@@ -322,7 +320,7 @@ static irqreturn_t enic_isr_msix(int irq, void *data)
 {
        struct napi_struct *napi = data;
 
-       napi_schedule(napi);
+       napi_schedule_irqoff(napi);
 
        return IRQ_HANDLED;
 }