]> err.no Git - linux-2.6/blobdiff - drivers/net/e1000/e1000_ethtool.c
Merge branch 'master' into upstream
[linux-2.6] / drivers / net / e1000 / e1000_ethtool.c
index e48dc578fde29c2b2079c98be28b6dacbd3cd26f..6ed7f599eba3dd656ce3e3d1bb4776d21c4af93a 100644 (file)
@@ -865,19 +865,22 @@ static int
 e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
 {
        struct net_device *netdev = adapter->netdev;
-       uint32_t mask, i=0, shared_int = TRUE;
-       uint32_t irq = adapter->pdev->irq;
+       uint32_t mask, i=0, shared_int = TRUE;
+       uint32_t irq = adapter->pdev->irq;
 
        *data = 0;
 
        /* Hook up test interrupt handler just for this test */
-       if (!request_irq(irq, &e1000_test_intr, 0, netdev->name, netdev)) {
+       if (!request_irq(irq, &e1000_test_intr, SA_PROBEIRQ, netdev->name,
+                        netdev)) {
                shared_int = FALSE;
        } else if (request_irq(irq, &e1000_test_intr, SA_SHIRQ,
                              netdev->name, netdev)){
                *data = 1;
                return -1;
        }
+       DPRINTK(PROBE,INFO, "testing %s interrupt\n",
+               (shared_int ? "shared" : "unshared"));
 
        /* Disable all the interrupts */
        E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF);
@@ -889,22 +892,22 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
                /* Interrupt to test */
                mask = 1 << i;
 
-               if (!shared_int) {
-                       /* Disable the interrupt to be reported in
-                        * the cause register and then force the same
-                        * interrupt and see if one gets posted.  If
-                        * an interrupt was posted to the bus, the
-                        * test failed.
-                        */
-                       adapter->test_icr = 0;
-                       E1000_WRITE_REG(&adapter->hw, IMC, mask);
-                       E1000_WRITE_REG(&adapter->hw, ICS, mask);
-                       msec_delay(10);
-
-                       if (adapter->test_icr & mask) {
-                               *data = 3;
-                               break;
-                       }
+               if (!shared_int) {
+                       /* Disable the interrupt to be reported in
+                        * the cause register and then force the same
+                        * interrupt and see if one gets posted.  If
+                        * an interrupt was posted to the bus, the
+                        * test failed.
+                        */
+                       adapter->test_icr = 0;
+                       E1000_WRITE_REG(&adapter->hw, IMC, mask);
+                       E1000_WRITE_REG(&adapter->hw, ICS, mask);
+                       msec_delay(10);
+
+                       if (adapter->test_icr & mask) {
+                               *data = 3;
+                               break;
+                       }
                }
 
                /* Enable the interrupt to be reported in
@@ -923,7 +926,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
                        break;
                }
 
-               if (!shared_int) {
+               if (!shared_int) {
                        /* Disable the other interrupts to be reported in
                         * the cause register and then force the other
                         * interrupts and see if any get posted.  If