[PATCH] PCI Hotplug: fix CPCI reference counting bug
Here's a patch that fixes up the pci_dev refcounting in the CPCI code. I've done some testing against it and it seems fine here. Signed-off-by: Scott Murray <scottm@somanetworks.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5273a00d9c
commit
03e49d40ea
|
@ -217,6 +217,8 @@ static void release_slot(struct hotplug_slot *hotplug_slot)
|
||||||
kfree(slot->hotplug_slot->info);
|
kfree(slot->hotplug_slot->info);
|
||||||
kfree(slot->hotplug_slot->name);
|
kfree(slot->hotplug_slot->name);
|
||||||
kfree(slot->hotplug_slot);
|
kfree(slot->hotplug_slot);
|
||||||
|
if (slot->dev)
|
||||||
|
pci_dev_put(slot->dev);
|
||||||
kfree(slot);
|
kfree(slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -315,9 +315,12 @@ int cpci_unconfigure_slot(struct slot* slot)
|
||||||
PCI_DEVFN(PCI_SLOT(slot->devfn), i));
|
PCI_DEVFN(PCI_SLOT(slot->devfn), i));
|
||||||
if (dev) {
|
if (dev) {
|
||||||
pci_remove_bus_device(dev);
|
pci_remove_bus_device(dev);
|
||||||
slot->dev = NULL;
|
pci_dev_put(dev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pci_dev_put(slot->dev);
|
||||||
|
slot->dev = NULL;
|
||||||
|
|
||||||
dbg("%s - exit", __FUNCTION__);
|
dbg("%s - exit", __FUNCTION__);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue