|
@@ -9,7 +9,7 @@
|
|
|
* Split from:
|
|
|
* linux/drivers/ide/pdc202xx.c Version 0.35 Mar. 30, 2002
|
|
|
* Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org>
|
|
|
- * Copyright (C) 2005-2006 MontaVista Software, Inc.
|
|
|
+ * Copyright (C) 2005-2007 MontaVista Software, Inc.
|
|
|
* Portions Copyright (C) 1999 Promise Technology, Inc.
|
|
|
* Author: Frank Tiernan (frankt@promise.com)
|
|
|
* Released under terms of General Public License
|
|
@@ -535,7 +535,7 @@ static int __devinit init_setup_pdc20270(struct pci_dev *dev,
|
|
|
(dev->bus->self->device == PCI_DEVICE_ID_DEC_21150)) {
|
|
|
if (PCI_SLOT(dev->devfn) & 2)
|
|
|
return -ENODEV;
|
|
|
- d->extra = 0;
|
|
|
+
|
|
|
while ((findev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, findev)) != NULL) {
|
|
|
if ((findev->vendor == dev->vendor) &&
|
|
|
(findev->device == dev->device) &&
|
|
@@ -544,7 +544,8 @@ static int __devinit init_setup_pdc20270(struct pci_dev *dev,
|
|
|
findev->irq = dev->irq;
|
|
|
}
|
|
|
ret = ide_setup_pci_devices(dev, findev, d);
|
|
|
- pci_dev_put(findev);
|
|
|
+ if (ret < 0)
|
|
|
+ pci_dev_put(findev);
|
|
|
return ret;
|
|
|
}
|
|
|
}
|