diff options
| author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2004-08-23 21:21:42 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-08-23 21:21:42 -0700 |
| commit | 41b3f60484f0f07814eac2f0491d57718e8d8b31 (patch) | |
| tree | bb0aa1ca830f9a6494879617a26182c322ebca7b | |
| parent | 94ae67e944f815e9450b867ff7d333022c07bcdc (diff) | |
[PATCH] hp100.c: add missing pci_enable_device()
Add pci_enable_device()/pci_disable_device(). In the past, drivers often
worked without this, but it is now required in order to route PCI interrupts
correctly.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | drivers/net/hp100.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c index 78ae4b2aca2c..4f5256eb8bfe 100644 --- a/drivers/net/hp100.c +++ b/drivers/net/hp100.c @@ -2910,10 +2910,15 @@ static int __devinit hp100_pci_probe (struct pci_dev *pdev, int ioaddr = pci_resource_start(pdev, 0); u_short pci_command; int err; - + if (!dev) return -ENOMEM; + if (pci_enable_device(pdev)) { + err = -ENODEV; + goto out0; + } + SET_MODULE_OWNER(dev); SET_NETDEV_DEV(dev, &pdev->dev); @@ -2951,6 +2956,8 @@ static int __devinit hp100_pci_probe (struct pci_dev *pdev, release_region(dev->base_addr, HP100_REGION_SIZE); out1: free_netdev(dev); + pci_disable_device(pdev); + out0: return err; } @@ -2959,6 +2966,7 @@ static void __devexit hp100_pci_remove (struct pci_dev *pdev) struct net_device *dev = pci_get_drvdata(pdev); cleanup_dev(dev); + pci_disable_device(pdev); } |
