struct list_head *add_list,
resource_size_t new_size)
{
- struct pci_dev_resource *dev_res;
+ resource_size_t add_size;
if (res->parent)
return;
if (resource_size(res) >= new_size)
return;
- dev_res = res_to_dev_res(add_list, res);
- if (!dev_res)
- return;
-
- /* Is there room to extend the window? */
- if (new_size - resource_size(res) <= dev_res->add_size)
- return;
-
- dev_res->add_size = new_size - resource_size(res);
- pci_dbg(bridge, "bridge window %pR extended by %pa\n", res,
- &dev_res->add_size);
+ add_size = new_size - resource_size(res);
+ pci_dbg(bridge, "bridge window %pR extended by %pa\n", res, &add_size);
+ res->end = res->start + new_size - 1;
+ remove_from_list(add_list, res);
}
static void pci_bus_distribute_available_resources(struct pci_bus *bus,
mmio_pref.end + 1);
/*
- * Update additional resource list (add_list) to fill all the
- * extra resource space available for this port except the space
- * calculated in __pci_bus_size_bridges() which covers all the
- * devices currently connected to the port and below.
+ * Now that we have adjusted for alignment, update the bridge window
+ * resources to fill as much remaining resource space as possible.
*/
adjust_bridge_window(bridge, io_res, add_list, resource_size(&io));
adjust_bridge_window(bridge, mmio_res, add_list, resource_size(&mmio));