[PATCH] sky2: name irq after eth for irqbalance
authorStephen Hemminger <shemminger@osdl.org>
Tue, 26 Sep 2006 18:57:40 +0000 (11:57 -0700)
committerJeff Garzik <jeff@garzik.org>
Wed, 27 Sep 2006 21:56:31 +0000 (17:56 -0400)
Use the ethernet device name when requesting the irq because the
irqbalance daemon looks for the name when deciding policy.
Better to play along with this dubious heuristic.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/sky2.c

index 00702dd..b908596 100644 (file)
@@ -3349,6 +3349,14 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
        if (!dev)
                goto err_out_free_pci;
 
+       if (!disable_msi && pci_enable_msi(pdev) == 0) {
+               err = sky2_test_msi(hw);
+               if (err == -EOPNOTSUPP)
+                       pci_disable_msi(pdev);
+               else if (err)
+                       goto err_out_free_netdev;
+       }
+
        err = register_netdev(dev);
        if (err) {
                printk(KERN_ERR PFX "%s: cannot register net device\n",
@@ -3356,6 +3364,14 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
                goto err_out_free_netdev;
        }
 
+       err = request_irq(pdev->irq,  sky2_intr, IRQF_SHARED, dev->name, hw);
+       if (err) {
+               printk(KERN_ERR PFX "%s: cannot assign irq %d\n",
+                      pci_name(pdev), pdev->irq);
+               goto err_out_unregister;
+       }
+       sky2_write32(hw, B0_IMSK, Y2_IS_BASE);
+
        sky2_show_addr(dev);
 
        if (hw->ports > 1 && (dev1 = sky2_init_netdev(hw, 1, using_dac))) {
@@ -3370,23 +3386,6 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
                }
        }
 
-       if (!disable_msi && pci_enable_msi(pdev) == 0) {
-               err = sky2_test_msi(hw);
-               if (err == -EOPNOTSUPP)
-                       pci_disable_msi(pdev);
-               else if (err)
-                       goto err_out_unregister;
-       }
-
-       err = request_irq(pdev->irq,  sky2_intr, IRQF_SHARED, DRV_NAME, hw);
-       if (err) {
-               printk(KERN_ERR PFX "%s: cannot assign irq %d\n",
-                      pci_name(pdev), pdev->irq);
-               goto err_out_unregister;
-       }
-
-       sky2_write32(hw, B0_IMSK, Y2_IS_BASE);
-
        setup_timer(&hw->idle_timer, sky2_idle, (unsigned long) hw);
        sky2_idle_start(hw);
 
@@ -3396,10 +3395,6 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
 
 err_out_unregister:
        pci_disable_msi(pdev);
-       if (dev1) {
-               unregister_netdev(dev1);
-               free_netdev(dev1);
-       }
        unregister_netdev(dev);
 err_out_free_netdev:
        free_netdev(dev);