From: Bjorn Helgaas <bjorn.helgaas@hp.com>

Don't look at pci_resource_start() before pci_enable_device().

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/hp100.c |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff -puN drivers/net/hp100.c~fix-hp100c-for-pci_enable_device-changes drivers/net/hp100.c
--- 25/drivers/net/hp100.c~fix-hp100c-for-pci_enable_device-changes	2004-08-25 19:17:18.982486272 -0700
+++ 25-akpm/drivers/net/hp100.c	2004-08-25 19:17:18.987485512 -0700
@@ -2906,16 +2906,17 @@ static struct eisa_driver hp100_eisa_dri
 static int __devinit hp100_pci_probe (struct pci_dev *pdev,
 				     const struct pci_device_id *ent)
 {
-	struct net_device *dev = alloc_etherdev(sizeof(struct hp100_private));
-	int ioaddr = pci_resource_start(pdev, 0);
+	struct net_device *dev;
+	int ioaddr;
 	u_short pci_command;
 	int err;
 
-	if (!dev)
-		return -ENOMEM;
+	if (pci_enable_device(pdev))
+		return -ENODEV;
 
-	if (pci_enable_device(pdev)) {
-		err = -ENODEV;
+	dev = alloc_etherdev(sizeof(struct hp100_private));
+	if (!dev) {
+		err = -ENOMEM;
 		goto out0;
 	}
 
@@ -2939,7 +2940,7 @@ static int __devinit hp100_pci_probe (st
 		pci_write_config_word(pdev, PCI_COMMAND, pci_command);
 	}
 	
-
+	ioaddr = pci_resource_start(pdev, 0);
 	err = hp100_probe1(dev, ioaddr, HP100_BUS_PCI, pdev);
 	if (err) 
 		goto out1;
@@ -2956,8 +2957,8 @@ static int __devinit hp100_pci_probe (st
 	release_region(dev->base_addr, HP100_REGION_SIZE);
  out1:
 	free_netdev(dev);
-	pci_disable_device(pdev);
  out0:
+	pci_disable_device(pdev);
 	return err;
 }
 
_