i2o: Do not disable pci device when it's in use
PATCH 1/1 i2o: Do not disable pci device when it's in use
When dpt_i2o is loaded first, i2o being loaded would cause it to call pci_device_disable, thus breaking dpt_i2o's use of the device. Based on similar usage of pci_disable_device in other drivers.
Signed-off-by Ben Collins <[email protected]>
drivers/message/i2o/pci.c +5 -1
@@ -303,6 +303,7 @@ static int __devinit i2o_pci_probe(strucstruct i2o_controller *c;int rc;struct pci_dev *i960 =NULL ; +int pci_dev_busy =0 ;printk (KERN_INFO "i2o: Checking for PCI I2O controllers...\n" );
@@ -395,6 +396,8 @@ static int __devinit i2o_pci_probe(strucif ((rc =i2o_pci_alloc (c))) {printk (KERN_ERR "%s: DMA / IO allocation for I2O controller " " failed\n" , c->name); +if (rc == -ENODEV ) + pci_dev_busy =1 ; goto free_controller; }
@@ -425,7 +428,8 @@ static int __devinit i2o_pci_probe(struci2o_iop_free (c); disable: -pci_disable_device (pdev); +if (!pci_dev_busy) +pci_disable_device (pdev);return rc; }