summaryrefslogtreecommitdiff
path: root/arch/x86/pci/mmconfig_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/pci/mmconfig_32.c')
-rw-r--r--arch/x86/pci/mmconfig_32.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
index c04523e09649..90d5fd476ed4 100644
--- a/arch/x86/pci/mmconfig_32.c
+++ b/arch/x86/pci/mmconfig_32.c
@@ -27,15 +27,10 @@ static int mmcfg_last_accessed_cpu;
*/
static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn)
{
- struct pci_mmcfg_region *cfg;
+ struct pci_mmcfg_region *cfg = pci_mmconfig_lookup(seg, bus);
- list_for_each_entry(cfg, &pci_mmcfg_list, list)
- if (cfg->segment == seg &&
- (cfg->start_bus <= bus) &&
- (cfg->end_bus >= bus))
- return cfg->address;
-
- /* Fall back to type 0 */
+ if (cfg)
+ return cfg->address;
return 0;
}