Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87d47d05 authored by Ben Collins's avatar Ben Collins Committed by Linus Torvalds
Browse files

[PATCH] 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: default avatarBen Collins <bcollins@ubuntu.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 48ea7530
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -303,6 +303,7 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev,
	struct i2o_controller *c;
	struct i2o_controller *c;
	int rc;
	int rc;
	struct pci_dev *i960 = NULL;
	struct pci_dev *i960 = NULL;
	int pci_dev_busy = 0;


	printk(KERN_INFO "i2o: Checking for PCI I2O controllers...\n");
	printk(KERN_INFO "i2o: Checking for PCI I2O controllers...\n");


@@ -395,6 +396,8 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev,
	if ((rc = i2o_pci_alloc(c))) {
	if ((rc = i2o_pci_alloc(c))) {
		printk(KERN_ERR "%s: DMA / IO allocation for I2O controller "
		printk(KERN_ERR "%s: DMA / IO allocation for I2O controller "
		       " failed\n", c->name);
		       " failed\n", c->name);
		if (rc == -ENODEV)
			pci_dev_busy = 1;
		goto free_controller;
		goto free_controller;
	}
	}


@@ -425,6 +428,7 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev,
	i2o_iop_free(c);
	i2o_iop_free(c);


      disable:
      disable:
	if (!pci_dev_busy)
		pci_disable_device(pdev);
		pci_disable_device(pdev);


	return rc;
	return rc;