summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Helgaas <bjorn.helgaas@hp.com>2004-08-23 21:21:42 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-08-23 21:21:42 -0700
commit41b3f60484f0f07814eac2f0491d57718e8d8b31 (patch)
treebb0aa1ca830f9a6494879617a26182c322ebca7b
parent94ae67e944f815e9450b867ff7d333022c07bcdc (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.c10
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);
}