]> www.infradead.org Git - users/jedix/linux-maple.git/commit
PCI: Restore pref MMIO allocation logic for host bridge without mmio64
authorYinghai Lu <yinghai@kernel.org>
Thu, 8 Oct 2015 21:38:34 +0000 (14:38 -0700)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Mon, 19 Oct 2015 20:41:15 +0000 (13:41 -0700)
commit88f97208c7a78187924924f741f864d6a3ccc62e
tree3885af0c9be31e6b1728cf0e2e9b025dbae1d4ad
parentd39428713e56e17b1558a1b69828e514b29b18e5
PCI: Restore pref MMIO allocation logic for host bridge without mmio64

From 5b2854155 (PCI: Restrict 64-bit prefetchable bridge windows to 64-bit
resources), we change the logic for pref mmio allocation:
When bridge pref support mmio64, we will only put children pref
that support mmio64 into it, and will put children pref mmio32
into bridge's non-pref mmio32.

That could leave bridge pref bar not used when that pref bar is mmio64,
and children res only has mmio32.
Also could have allocation failure when non-pref mmio32 is not big
enough space for those children pref mmio32.

That is not rational when the host bridge does not 64bit mmio above 4g
at all.

The patch restore to old logic:
when host bridge does not have has_mem64, put children pref mmio64 and
pref mmio32 all under bridges pref bars.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Orabug: 21826746

Signed-off-by: Khalid Aziz <khalid.aziz@oracle.com>
(cherry picked from commit 3317fa110f1c0c0f0a1d0f3ccd00d20319d76623)
drivers/pci/bus.c
drivers/pci/setup-bus.c
drivers/pci/setup-res.c