mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
PCI: Change pci_dev variable from 'bridge' to 'dev'
Upcoming fix to BAR resize will store also device BAR resource in the saved list. Change the pci_dev variable in the loop from 'bridge' to 'dev' as the former would be misleading with non-bridges in the list. This is in a separate change to reduce churn in the upcoming BAR resize fix. While it appears that the logic in the loop doing pci_setup_bridge() is altered as 'bridge' variable is no longer updated, a bridge should never appear more than once in the saved list so the check can only match to the first entry. As such, the code with two distinct pci_dev variables better represents the intention of the check compared with the old code where bridge variable was reused for a different purpose. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Tested-by: Alex Bennée <alex.bennee@linaro.org> # AVA, AMD GPU Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Link: https://patch.msgid.link/20251113162628.5946-4-ilpo.jarvinen@linux.intel.com
This commit is contained in:
committed by
Bjorn Helgaas
parent
4687b3315a
commit
34c702ea04
@@ -2479,12 +2479,13 @@ int pbus_reassign_bridge_resources(struct pci_bus *bus, struct resource *res)
|
||||
}
|
||||
|
||||
list_for_each_entry(dev_res, &saved, list) {
|
||||
struct pci_dev *dev = dev_res->dev;
|
||||
|
||||
/* Skip the bridge we just assigned resources for */
|
||||
if (bridge == dev_res->dev)
|
||||
if (bridge == dev)
|
||||
continue;
|
||||
|
||||
bridge = dev_res->dev;
|
||||
pci_setup_bridge(bridge->subordinate);
|
||||
pci_setup_bridge(dev->subordinate);
|
||||
}
|
||||
|
||||
free_list(&saved);
|
||||
@@ -2500,19 +2501,19 @@ cleanup:
|
||||
/* Revert to the old configuration */
|
||||
list_for_each_entry(dev_res, &saved, list) {
|
||||
struct resource *res = dev_res->res;
|
||||
struct pci_dev *dev = dev_res->dev;
|
||||
|
||||
bridge = dev_res->dev;
|
||||
i = pci_resource_num(bridge, res);
|
||||
i = pci_resource_num(dev, res);
|
||||
|
||||
if (res->parent) {
|
||||
release_child_resources(res);
|
||||
pci_release_resource(bridge, i);
|
||||
pci_release_resource(dev, i);
|
||||
}
|
||||
|
||||
restore_dev_resource(dev_res);
|
||||
|
||||
pci_claim_resource(bridge, i);
|
||||
pci_setup_bridge(bridge->subordinate);
|
||||
pci_claim_resource(dev, i);
|
||||
pci_setup_bridge(dev->subordinate);
|
||||
}
|
||||
free_list(&saved);
|
||||
up_read(&pci_bus_sem);
|
||||
|
||||
Reference in New Issue
Block a user