]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/pci/setup-bus.c
PCI: Rename variables
[linux.git] / drivers / pci / setup-bus.c
index f279826204eb4f51a8b7988802149da81e32eca6..9d167d5b22352bdd926a4451bae1b1017b9ca1b8 100644 (file)
@@ -1803,12 +1803,18 @@ void pci_assign_unassigned_root_bus_resources(struct pci_bus *bus)
        /* Restore size and flags */
        list_for_each_entry(fail_res, &fail_head, list) {
                struct resource *res = fail_res->res;
+               int idx;
 
                res->start = fail_res->start;
                res->end = fail_res->end;
                res->flags = fail_res->flags;
-               if (fail_res->dev->subordinate)
-                       res->flags = 0;
+
+               if (pci_is_bridge(fail_res->dev)) {
+                       idx = res - &fail_res->dev->resource[0];
+                       if (idx >= PCI_BRIDGE_RESOURCES &&
+                           idx <= PCI_BRIDGE_RESOURCE_END)
+                               res->flags = 0;
+               }
        }
        free_list(&fail_head);
 
@@ -1867,6 +1873,7 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
        unsigned int normal_bridges = 0, hotplug_bridges = 0;
        struct resource *io_res, *mmio_res, *mmio_pref_res;
        struct pci_dev *dev, *bridge = bus->self;
+       resource_size_t io_per_hp, mmio_per_hp, mmio_pref_per_hp;
 
        io_res = &bridge->resource[PCI_BRIDGE_RESOURCES + 0];
        mmio_res = &bridge->resource[PCI_BRIDGE_RESOURCES + 1];
@@ -1902,11 +1909,10 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
         */
        if (hotplug_bridges + normal_bridges == 1) {
                dev = list_first_entry(&bus->devices, struct pci_dev, bus_list);
-               if (dev->subordinate) {
+               if (dev->subordinate)
                        pci_bus_distribute_available_resources(dev->subordinate,
                                add_list, available_io, available_mmio,
                                available_mmio_pref);
-               }
                return;
        }
 
@@ -1951,7 +1957,7 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
         * resource space between hotplug bridges.
         */
        for_each_pci_bridge(dev, bus) {
-               resource_size_t align, io, mmio, mmio_pref;
+               resource_size_t align;
                struct pci_bus *b;
 
                b = dev->subordinate;
@@ -1964,22 +1970,25 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
                 * account.
                 */
                align = pci_resource_alignment(bridge, io_res);
-               io = div64_ul(available_io, hotplug_bridges);
-               io = min(ALIGN(io, align), remaining_io);
-               remaining_io -= io;
+               io_per_hp = div64_ul(available_io, hotplug_bridges);
+               io_per_hp = min(ALIGN(io_per_hp, align), remaining_io);
+               remaining_io -= io_per_hp;
 
                align = pci_resource_alignment(bridge, mmio_res);
-               mmio = div64_ul(available_mmio, hotplug_bridges);
-               mmio = min(ALIGN(mmio, align), remaining_mmio);
-               remaining_mmio -= mmio;
+               mmio_per_hp = div64_ul(available_mmio, hotplug_bridges);
+               mmio_per_hp = min(ALIGN(mmio_per_hp, align), remaining_mmio);
+               remaining_mmio -= mmio_per_hp;
 
                align = pci_resource_alignment(bridge, mmio_pref_res);
-               mmio_pref = div64_ul(available_mmio_pref, hotplug_bridges);
-               mmio_pref = min(ALIGN(mmio_pref, align), remaining_mmio_pref);
-               remaining_mmio_pref -= mmio_pref;
+               mmio_pref_per_hp = div64_ul(available_mmio_pref,
+                                           hotplug_bridges);
+               mmio_pref_per_hp = min(ALIGN(mmio_pref_per_hp, align),
+                                      remaining_mmio_pref);
+               remaining_mmio_pref -= mmio_pref_per_hp;
 
-               pci_bus_distribute_available_resources(b, add_list, io, mmio,
-                                                      mmio_pref);
+               pci_bus_distribute_available_resources(b, add_list, io_per_hp,
+                                                      mmio_per_hp,
+                                                      mmio_pref_per_hp);
        }
 }
 
@@ -2055,12 +2064,18 @@ void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge)
        /* Restore size and flags */
        list_for_each_entry(fail_res, &fail_head, list) {
                struct resource *res = fail_res->res;
+               int idx;
 
                res->start = fail_res->start;
                res->end = fail_res->end;
                res->flags = fail_res->flags;
-               if (fail_res->dev->subordinate)
-                       res->flags = 0;
+
+               if (pci_is_bridge(fail_res->dev)) {
+                       idx = res - &fail_res->dev->resource[0];
+                       if (idx >= PCI_BRIDGE_RESOURCES &&
+                           idx <= PCI_BRIDGE_RESOURCE_END)
+                               res->flags = 0;
+               }
        }
        free_list(&fail_head);