linux/arch
Bjorn Helgaas 2fe2abf896 PCI: augment bus resource table with a list
Previously we used a table of size PCI_BUS_NUM_RESOURCES (16) for resources
forwarded to a bus by its upstream bridge.  We've increased this size
several times when the table overflowed.

But there's no good limit on the number of resources because host bridges
and subtractive decode bridges can forward any number of ranges to their
secondary buses.

This patch reduces the table to only PCI_BRIDGE_RESOURCE_NUM (4) entries,
which corresponds to the number of windows a PCI-to-PCI (3) or CardBus (4)
bridge can positively decode.  Any additional resources, e.g., PCI host
bridge windows or subtractively-decoded regions, are kept in a list.

I'd prefer a single list rather than this split table/list approach, but
that requires simultaneous changes to every architecture.  This approach
only requires immediate changes where we set up (a) host bridges with more
than four windows and (b) subtractive-decode P2P bridges, and we can
incrementally change other architectures to use the list.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-02-23 09:43:37 -08:00
..
alpha resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
arm resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
avr32 avr32: clean up memory allocation in at32_add_device_mci 2009-12-28 12:33:00 +01:00
blackfin blackfin,kgdb: Do not put PC in gdb_regs into retx. 2010-01-07 11:58:37 -06:00
cris resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
frv resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
h8300 Merge branch 'for-33' of git://repo.or.cz/linux-kbuild 2009-12-17 07:23:42 -08:00
ia64 PCI: augment bus resource table with a list 2010-02-23 09:43:37 -08:00
m32r elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
m68k m68knommu: fix definitions of __pa() and __va() 2010-01-12 20:51:45 -08:00
m68knommu m68knommu: fix invalid flags on coldfire pit clocksource 2010-01-16 12:15:38 -08:00
microblaze microblaze: Invalidate dcache before enabling it 2010-02-08 11:39:18 +01:00
mips resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
mn10300 PCI: add pci_bus_for_each_resource(), remove direct bus->resource[] refs 2010-02-23 09:43:31 -08:00
parisc resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
powerpc PCI: add pci_bus_for_each_resource(), remove direct bus->resource[] refs 2010-02-23 09:43:31 -08:00
s390 [S390] Fix struct _lowcore layout. 2010-02-09 09:46:23 +01:00
score mm: make totalhigh_pages unsigned long 2010-01-11 09:34:03 -08:00
sh resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
sparc resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
um Unrot uml mconsole a bit 2010-01-14 09:05:26 -05:00
x86 PCI: augment bus resource table with a list 2010-02-23 09:43:37 -08:00
xtensa resource/PCI: mark struct resource as const 2010-02-22 16:16:57 -08:00
.gitignore
Kconfig hw-breakpoints: Fix hardware breakpoints -> perf events dependency 2009-12-18 13:11:51 +01:00