mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
PCI Hotplug: cpqphp: don't use pci_find_slot()
Convert uses of pci_find_slot to modern API. In the conversion sites, we end up calling pci_dev_put() right away. This may seem like it misses the entire point of doing something like pci_get_bus_and_slot(), since we drop the reference so soon, but it turns out we don't actually do much with the returned pci_dev. I plan on untangling cpqphp further, but clearly cpqphp never worried too much about a properly refcounted pci_dev anyway. For now, this conversion seems reasonable, as it gets rid of the last in-tree caller of pci_find_slot. Signed-off-by: Alex Chiang <achiang@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
6d1e87daee
commit
12a9da0fcb
2 changed files with 12 additions and 6 deletions
|
@ -41,7 +41,7 @@ config HOTPLUG_PCI_FAKE
|
||||||
|
|
||||||
config HOTPLUG_PCI_COMPAQ
|
config HOTPLUG_PCI_COMPAQ
|
||||||
tristate "Compaq PCI Hotplug driver"
|
tristate "Compaq PCI Hotplug driver"
|
||||||
depends on X86 && PCI_BIOS && PCI_LEGACY
|
depends on X86 && PCI_BIOS
|
||||||
help
|
help
|
||||||
Say Y here if you have a motherboard with a Compaq PCI Hotplug
|
Say Y here if you have a motherboard with a Compaq PCI Hotplug
|
||||||
controller.
|
controller.
|
||||||
|
|
|
@ -88,7 +88,7 @@ int cpqhp_configure_device (struct controller* ctrl, struct pci_func* func)
|
||||||
int num;
|
int num;
|
||||||
|
|
||||||
if (func->pci_dev == NULL)
|
if (func->pci_dev == NULL)
|
||||||
func->pci_dev = pci_find_slot(func->bus, PCI_DEVFN(func->device, func->function));
|
func->pci_dev = pci_get_bus_and_slot(func->bus,PCI_DEVFN(func->device, func->function));
|
||||||
|
|
||||||
/* No pci device, we need to create it then */
|
/* No pci device, we need to create it then */
|
||||||
if (func->pci_dev == NULL) {
|
if (func->pci_dev == NULL) {
|
||||||
|
@ -98,7 +98,7 @@ int cpqhp_configure_device (struct controller* ctrl, struct pci_func* func)
|
||||||
if (num)
|
if (num)
|
||||||
pci_bus_add_devices(ctrl->pci_dev->bus);
|
pci_bus_add_devices(ctrl->pci_dev->bus);
|
||||||
|
|
||||||
func->pci_dev = pci_find_slot(func->bus, PCI_DEVFN(func->device, func->function));
|
func->pci_dev = pci_get_bus_and_slot(func->bus, PCI_DEVFN(func->device, func->function));
|
||||||
if (func->pci_dev == NULL) {
|
if (func->pci_dev == NULL) {
|
||||||
dbg("ERROR: pci_dev still null\n");
|
dbg("ERROR: pci_dev still null\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -111,6 +111,8 @@ int cpqhp_configure_device (struct controller* ctrl, struct pci_func* func)
|
||||||
pci_do_scan_bus(child);
|
pci_do_scan_bus(child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pci_dev_put(func->pci_dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,10 +124,12 @@ int cpqhp_unconfigure_device(struct pci_func* func)
|
||||||
dbg("%s: bus/dev/func = %x/%x/%x\n", __func__, func->bus, func->device, func->function);
|
dbg("%s: bus/dev/func = %x/%x/%x\n", __func__, func->bus, func->device, func->function);
|
||||||
|
|
||||||
for (j=0; j<8 ; j++) {
|
for (j=0; j<8 ; j++) {
|
||||||
struct pci_dev* temp = pci_find_slot(func->bus, PCI_DEVFN(func->device, j));
|
struct pci_dev* temp = pci_get_bus_and_slot(func->bus, PCI_DEVFN(func->device, j));
|
||||||
if (temp)
|
if (temp) {
|
||||||
|
pci_dev_put(temp);
|
||||||
pci_remove_bus_device(temp);
|
pci_remove_bus_device(temp);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,7 +410,7 @@ int cpqhp_save_config(struct controller *ctrl, int busnumber, int is_hot_plug)
|
||||||
new_slot->switch_save = 0x10;
|
new_slot->switch_save = 0x10;
|
||||||
/* In case of unsupported board */
|
/* In case of unsupported board */
|
||||||
new_slot->status = DevError;
|
new_slot->status = DevError;
|
||||||
new_slot->pci_dev = pci_find_slot(new_slot->bus, (new_slot->device << 3) | new_slot->function);
|
new_slot->pci_dev = pci_get_bus_and_slot(new_slot->bus, (new_slot->device << 3) | new_slot->function);
|
||||||
|
|
||||||
for (cloop = 0; cloop < 0x20; cloop++) {
|
for (cloop = 0; cloop < 0x20; cloop++) {
|
||||||
rc = pci_bus_read_config_dword(ctrl->pci_bus, PCI_DEVFN(device, function), cloop << 2, (u32 *) & (new_slot-> config_space [cloop]));
|
rc = pci_bus_read_config_dword(ctrl->pci_bus, PCI_DEVFN(device, function), cloop << 2, (u32 *) & (new_slot-> config_space [cloop]));
|
||||||
|
@ -414,6 +418,8 @@ int cpqhp_save_config(struct controller *ctrl, int busnumber, int is_hot_plug)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pci_dev_put(new_slot->pci_dev);
|
||||||
|
|
||||||
function++;
|
function++;
|
||||||
|
|
||||||
stop_it = 0;
|
stop_it = 0;
|
||||||
|
|
Loading…
Reference in a new issue