提交 9fa1b1f3 编写于 作者: S Stephen Hemminger 提交者: Jeff Garzik

[PATCH] sky2: name irq after eth for irqbalance

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: NStephen Hemminger <shemminger@osdl.org>
Signed-off-by: NJeff Garzik <jeff@garzik.org>
上级 c2716fb4
...@@ -3349,6 +3349,14 @@ static int __devinit sky2_probe(struct pci_dev *pdev, ...@@ -3349,6 +3349,14 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
if (!dev) if (!dev)
goto err_out_free_pci; 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); err = register_netdev(dev);
if (err) { if (err) {
printk(KERN_ERR PFX "%s: cannot register net device\n", printk(KERN_ERR PFX "%s: cannot register net device\n",
...@@ -3356,6 +3364,14 @@ static int __devinit sky2_probe(struct pci_dev *pdev, ...@@ -3356,6 +3364,14 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
goto err_out_free_netdev; 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); sky2_show_addr(dev);
if (hw->ports > 1 && (dev1 = sky2_init_netdev(hw, 1, using_dac))) { 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, ...@@ -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); setup_timer(&hw->idle_timer, sky2_idle, (unsigned long) hw);
sky2_idle_start(hw); sky2_idle_start(hw);
...@@ -3396,10 +3395,6 @@ static int __devinit sky2_probe(struct pci_dev *pdev, ...@@ -3396,10 +3395,6 @@ static int __devinit sky2_probe(struct pci_dev *pdev,
err_out_unregister: err_out_unregister:
pci_disable_msi(pdev); pci_disable_msi(pdev);
if (dev1) {
unregister_netdev(dev1);
free_netdev(dev1);
}
unregister_netdev(dev); unregister_netdev(dev);
err_out_free_netdev: err_out_free_netdev:
free_netdev(dev); free_netdev(dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册