vector = 0;
                msix_irq = adapter->msix_entries[vector].vector;
-               disable_irq(msix_irq);
-               e1000_intr_msix_rx(msix_irq, netdev);
+               if (disable_hardirq(msix_irq))
+                       e1000_intr_msix_rx(msix_irq, netdev);
                enable_irq(msix_irq);
 
                vector++;
                msix_irq = adapter->msix_entries[vector].vector;
-               disable_irq(msix_irq);
-               e1000_intr_msix_tx(msix_irq, netdev);
+               if (disable_hardirq(msix_irq))
+                       e1000_intr_msix_tx(msix_irq, netdev);
                enable_irq(msix_irq);
 
                vector++;
                msix_irq = adapter->msix_entries[vector].vector;
-               disable_irq(msix_irq);
-               e1000_msix_other(msix_irq, netdev);
+               if (disable_hardirq(msix_irq))
+                       e1000_msix_other(msix_irq, netdev);
                enable_irq(msix_irq);
        }