On Sat, Mar 14, 2020 at 12:44 PM Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx> wrote: > > In certain cases we should be able to enumerate IO and MEM ranges > of all PCI devices installed in the system, and then set respective > host bridge apertures basing on calculated size and alignment. > Particularly when firmware is broken and fails to assign bridge > windows properly, like on Alpha UP1500 platform. > > Actually, almost everything is already in place, and required > changes are minimal: > > - add "size_windows" flag to struct pci_host_bridge: when set, it > instructs __pci_bus_size_bridges() to continue with the root bus; > - in the __pci_bus_size_bridges() path: add checks for bus->self, > as it can legitimately be null for the root bus. Works great. Thanks Ivan! Tested-by: Matt Turner <mattst88@xxxxxxxxx>