PCI/x86: don't assume prefetchable ranges are 64bit
authorYinghai Lu <[email protected]>
Fri, 24 Apr 2009 03:48:32 +0000 (20:48 -0700)
committerJesse Barnes <[email protected]>
Thu, 11 Jun 2009 19:04:06 +0000 (12:04 -0700)
commit1f82de10d6b1d845155363c895c552e61b36b51a
tree3e93b9d1c97ae48509133fbbec9c81b4823816a5
parent67b5db6502ddd27d65dea43bf036abbd82d0dfc9
PCI/x86: don't assume prefetchable ranges are 64bit

We should not assign 64bit ranges to PCI devices that only take 32bit
prefetchable addresses.

Try to set IORESOURCE_MEM_64 in 64bit resource of pci_device/pci_bridge
and make the bus resource only have that bit set when all devices under
it support 64bit prefetchable memory.  Use that flag to allocate
resources from that range.

Reported-by: Yannick <[email protected]>
Reviewed-by: Ivan Kokshaysky <[email protected]>
Signed-off-by: Yinghai Lu <[email protected]>
Signed-off-by: Jesse Barnes <[email protected]>
arch/x86/include/asm/pci.h
drivers/pci/bus.c
drivers/pci/probe.c
drivers/pci/setup-bus.c
include/linux/ioport.h
include/linux/pci.h