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 <yannick.roehlly@free.fr> Reviewed-by:
Ivan Kokshaysky <ink@jurassic.park.msu.ru> Signed-off-by:
Yinghai Lu <yinghai@kernel.org> Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org>
Showing
- arch/x86/include/asm/pci.h 1 addition, 0 deletionsarch/x86/include/asm/pci.h
- drivers/pci/bus.c 6 additions, 1 deletiondrivers/pci/bus.c
- drivers/pci/probe.c 7 additions, 2 deletionsdrivers/pci/probe.c
- drivers/pci/setup-bus.c 42 additions, 10 deletionsdrivers/pci/setup-bus.c
- include/linux/ioport.h 2 additions, 0 deletionsinclude/linux/ioport.h
- include/linux/pci.h 4 additions, 0 deletionsinclude/linux/pci.h
Loading
Please register or sign in to comment