diff options
author | Daniel J Blueman <daniel@numascale.com> | 2015-12-30 13:06:47 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-12-30 13:19:03 -0500 |
commit | dd7a5ab495019d424c2b0747892eb2e38a052ba5 (patch) | |
tree | a850e188e869f7e7465afc4a1e4533d622a45fac | |
parent | 30bfa7b3488bfb1bb75c9f50a5fcac1832970c60 (diff) |
x86/numachip: Fix NumaConnect2 MMCFG PCI access
The MMCFG PCI accessors weren't being setup for NumacConnect2
correctly due to over-early assignment; this would create the
potential for the wrong PCI domain to be accessed.
Fix this by using the correct arch-specific PCI init function.
Signed-off-by: Daniel J Blueman <daniel@numascale.com>
Acked-by: Steffen Persvold <sp@numascale.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1451498807-15920-1-git-send-email-daniel@numascale.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/kernel/apic/apic_numachip.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic/apic_numachip.c b/arch/x86/kernel/apic/apic_numachip.c index 38dd5efdd04c..2bd2292a316d 100644 --- a/arch/x86/kernel/apic/apic_numachip.c +++ b/arch/x86/kernel/apic/apic_numachip.c | |||
@@ -193,20 +193,17 @@ static int __init numachip_system_init(void) | |||
193 | case 1: | 193 | case 1: |
194 | init_extra_mapping_uc(NUMACHIP_LCSR_BASE, NUMACHIP_LCSR_SIZE); | 194 | init_extra_mapping_uc(NUMACHIP_LCSR_BASE, NUMACHIP_LCSR_SIZE); |
195 | numachip_apic_icr_write = numachip1_apic_icr_write; | 195 | numachip_apic_icr_write = numachip1_apic_icr_write; |
196 | x86_init.pci.arch_init = pci_numachip_init; | ||
197 | break; | 196 | break; |
198 | case 2: | 197 | case 2: |
199 | init_extra_mapping_uc(NUMACHIP2_LCSR_BASE, NUMACHIP2_LCSR_SIZE); | 198 | init_extra_mapping_uc(NUMACHIP2_LCSR_BASE, NUMACHIP2_LCSR_SIZE); |
200 | numachip_apic_icr_write = numachip2_apic_icr_write; | 199 | numachip_apic_icr_write = numachip2_apic_icr_write; |
201 | |||
202 | /* Use MCFG config cycles rather than locked CF8 cycles */ | ||
203 | raw_pci_ops = &pci_mmcfg; | ||
204 | break; | 200 | break; |
205 | default: | 201 | default: |
206 | return 0; | 202 | return 0; |
207 | } | 203 | } |
208 | 204 | ||
209 | x86_cpuinit.fixup_cpu_id = fixup_cpu_id; | 205 | x86_cpuinit.fixup_cpu_id = fixup_cpu_id; |
206 | x86_init.pci.arch_init = pci_numachip_init; | ||
210 | 207 | ||
211 | return 0; | 208 | return 0; |
212 | } | 209 | } |