diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2009-11-13 19:34:49 -0500 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-11-24 18:30:14 -0500 |
commit | ff097ddd4aeac790fd51d013c79c2f18ec9a7117 (patch) | |
tree | 4a77f081e4ac7e93aa74a102bf372419699468b9 /arch/x86/pci/mmconfig_32.c | |
parent | 987c367b4e93be6826394e7c9cc14d28bb5c8810 (diff) |
x86/PCI: MMCONFIG: manage pci_mmcfg_region as a list, not a table
This changes pci_mmcfg_region from a table to a list, to make it easier
to add and remove MMCONFIG regions for PCI host bridge hotplug.
Reviewed-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'arch/x86/pci/mmconfig_32.c')
-rw-r--r-- | arch/x86/pci/mmconfig_32.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c index a3cee532c935..c04523e09649 100644 --- a/arch/x86/pci/mmconfig_32.c +++ b/arch/x86/pci/mmconfig_32.c | |||
@@ -28,15 +28,12 @@ static int mmcfg_last_accessed_cpu; | |||
28 | static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) | 28 | static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) |
29 | { | 29 | { |
30 | struct pci_mmcfg_region *cfg; | 30 | struct pci_mmcfg_region *cfg; |
31 | int cfg_num; | ||
32 | 31 | ||
33 | for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) { | 32 | list_for_each_entry(cfg, &pci_mmcfg_list, list) |
34 | cfg = &pci_mmcfg_config[cfg_num]; | ||
35 | if (cfg->segment == seg && | 33 | if (cfg->segment == seg && |
36 | (cfg->start_bus <= bus) && | 34 | (cfg->start_bus <= bus) && |
37 | (cfg->end_bus >= bus)) | 35 | (cfg->end_bus >= bus)) |
38 | return cfg->address; | 36 | return cfg->address; |
39 | } | ||
40 | 37 | ||
41 | /* Fall back to type 0 */ | 38 | /* Fall back to type 0 */ |
42 | return 0; | 39 | return 0; |