diff options
author | Yinghai Lu <yinghai@kernel.org> | 2009-04-23 23:48:32 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-06-11 15:04:06 -0400 |
commit | 1f82de10d6b1d845155363c895c552e61b36b51a (patch) | |
tree | 3e93b9d1c97ae48509133fbbec9c81b4823816a5 /include/linux/pci.h | |
parent | 67b5db6502ddd27d65dea43bf036abbd82d0dfc9 (diff) |
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>
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r-- | include/linux/pci.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h index 72698d89e76..6dfa47d25ba 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -1097,6 +1097,10 @@ static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus, | |||
1097 | 1097 | ||
1098 | #include <asm/pci.h> | 1098 | #include <asm/pci.h> |
1099 | 1099 | ||
1100 | #ifndef PCIBIOS_MAX_MEM_32 | ||
1101 | #define PCIBIOS_MAX_MEM_32 (-1) | ||
1102 | #endif | ||
1103 | |||
1100 | /* these helpers provide future and backwards compatibility | 1104 | /* these helpers provide future and backwards compatibility |
1101 | * for accessing popular PCI BAR info */ | 1105 | * for accessing popular PCI BAR info */ |
1102 | #define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start) | 1106 | #define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start) |