aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/i2o/pci.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2006-01-03 10:59:55 -0500
committerJeff Garzik <jgarzik@pobox.com>2006-01-03 10:59:55 -0500
commit02f693c7118f6be9e677070eb630c1f3a654cdd3 (patch)
treeb5493c816a1f76a01319a84955c5ba07d47517c3 /drivers/message/i2o/pci.c
parente7fb585940a3dc87a42ebc30a62296e5cf6f9cd5 (diff)
parenta18ceba7b40e24a9da87249bd74f16ea5abd6894 (diff)
Merge branch 'upstream'
Diffstat (limited to 'drivers/message/i2o/pci.c')
-rw-r--r--drivers/message/i2o/pci.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/message/i2o/pci.c b/drivers/message/i2o/pci.c
index 81ef306cb12..ee7075fa1ec 100644
--- a/drivers/message/i2o/pci.c
+++ b/drivers/message/i2o/pci.c
@@ -303,6 +303,7 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev,
303 struct i2o_controller *c; 303 struct i2o_controller *c;
304 int rc; 304 int rc;
305 struct pci_dev *i960 = NULL; 305 struct pci_dev *i960 = NULL;
306 int pci_dev_busy = 0;
306 307
307 printk(KERN_INFO "i2o: Checking for PCI I2O controllers...\n"); 308 printk(KERN_INFO "i2o: Checking for PCI I2O controllers...\n");
308 309
@@ -395,6 +396,8 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev,
395 if ((rc = i2o_pci_alloc(c))) { 396 if ((rc = i2o_pci_alloc(c))) {
396 printk(KERN_ERR "%s: DMA / IO allocation for I2O controller " 397 printk(KERN_ERR "%s: DMA / IO allocation for I2O controller "
397 " failed\n", c->name); 398 " failed\n", c->name);
399 if (rc == -ENODEV)
400 pci_dev_busy = 1;
398 goto free_controller; 401 goto free_controller;
399 } 402 }
400 403
@@ -425,7 +428,8 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev,
425 i2o_iop_free(c); 428 i2o_iop_free(c);
426 429
427 disable: 430 disable:
428 pci_disable_device(pdev); 431 if (!pci_dev_busy)
432 pci_disable_device(pdev);
429 433
430 return rc; 434 return rc;
431} 435}