PCI: Use res->parent to check if resource is assigned
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 16 Dec 2024 17:56:30 +0000 (19:56 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 18 Feb 2025 21:40:54 +0000 (15:40 -0600)
reassign_resources_sorted() uses resource_size() to select between
pci_assign_resource() and pci_reassign_resource(). Due to twisted way
bridge window sizing in pbus_size_mem() sets resource sizes to 0, it works
to match into IOV resources but that is going to be changed by an upcoming
change.

Replace resource_size() check with res->parent check that is the true
dividing line in between whether assign or reassign function should be used
for the resource.

Link: https://lore.kernel.org/r/20241216175632.4175-24-ilpo.jarvinen@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Xiaochun Lee <lixc17@lenovo.com>
drivers/pci/setup-bus.c

index 5bebfeb6c417ab20525c334b0678964ff8acea4c..ef1c82d2e58e530b7de9df8a63f7ccd9dc88b460 100644 (file)
@@ -271,7 +271,7 @@ static void reassign_resources_sorted(struct list_head *realloc_head,
                res_name = pci_resource_name(dev, idx);
                add_size = add_res->add_size;
                align = add_res->min_align;
-               if (!resource_size(res)) {
+               if (!res->parent) {
                        resource_set_range(res, align, add_size);
                        if (pci_assign_resource(dev, idx)) {
                                pci_dbg(dev,