ixgbe: fix bug with shared interrupts
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Fri, 12 Sep 2008 02:56:14 +0000 (19:56 -0700)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 24 Sep 2008 22:54:51 +0000 (18:54 -0400)
fix ixgbe bug reported with shared legacy interrupts

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/ixgbe/ixgbe_main.c

index 11bf86b93622d5b76352ef90b575b7f0054232fa..cfaa3ca28f51c224a218145a33b0518fbd0c6dc0 100644 (file)
@@ -1245,8 +1245,13 @@ static irqreturn_t ixgbe_intr(int irq, void *data)
        /* for NAPI, using EIAM to auto-mask tx/rx interrupt bits on read
         * therefore no explict interrupt disable is necessary */
        eicr = IXGBE_READ_REG(hw, IXGBE_EICR);
-       if (!eicr)
+       if (!eicr) {
+               /* shared interrupt alert!
+                * make sure interrupts are enabled because the read will
+                * have disabled interrupts due to EIAM */
+               ixgbe_irq_enable(adapter);
                return IRQ_NONE;        /* Not our interrupt */
+       }
 
        if (eicr & IXGBE_EICR_LSC)
                ixgbe_check_lsc(adapter);