Re: [PATCH] PCI hotplug changes for 2.5.69

Greg KH (greg@kroah.com)
Tue, 6 May 2003 16:06:53 -0700


ChangeSet 1.1082, 2003/05/06 15:35:23-07:00, greg@kroah.com

[PATCH] PCI Hotplug: fix up the ibm driver to work properly again.

drivers/hotplug/ibmphp_core.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)

diff -Nru a/drivers/hotplug/ibmphp_core.c b/drivers/hotplug/ibmphp_core.c
--- a/drivers/hotplug/ibmphp_core.c Tue May 6 15:55:58 2003
+++ b/drivers/hotplug/ibmphp_core.c Tue May 6 15:55:58 2003
@@ -846,22 +846,24 @@
{
unsigned char bus;
struct pci_bus *child;
- int rc = 0;
+ int num;
int flag = 0; /* this is to make sure we don't double scan the bus, for bridged devices primarily */

if (!(bus_structure_fixup (func->busno)))
flag = 1;
if (func->dev == NULL)
- func->dev = pci_find_slot (func->busno, (func->device << 3) | (func->function & 0x7));
+ func->dev = pci_find_slot (func->busno, PCI_DEVFN(func->device, func->function));

if (func->dev == NULL) {
struct pci_bus *bus = ibmphp_find_bus (func->busno);
if (!bus)
return 0;

- func->dev = pci_scan_slot(bus,
- (func->device << 3) + (func->function & 0x7));
+ num = pci_scan_slot(bus, PCI_DEVFN(func->device, func->function));
+ if (num)
+ pci_bus_add_devices(bus);

+ func->dev = pci_find_slot(func->busno, PCI_DEVFN(func->device, func->function));
if (func->dev == NULL) {
err ("ERROR... : pci_dev still NULL \n");
return 0;
@@ -873,7 +875,7 @@
pci_do_scan_bus (child);
}

- return rc;
+ return 0;
}

/*******************************************************

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/