aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Thorlton <[email protected]>2016-05-04 17:39:52 -0500
committerIngo Molnar <[email protected]>2016-05-05 09:55:02 +0200
commit08914f436bdd2ed60923f49cbc402307aba20fe4 (patch)
tree67a5be641a5f6b02e8728f6de17a02262cc92131
parent04974df8049fc4240d22759a91e035082ccd18b4 (diff)
x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init
A while back the following commit: d394f2d9d8e1 ("x86/platform/UV: Remove EFI memmap quirk for UV2+") changed uv_system_init() to only call map_low_mmrs() on older UV1 hardware, which requires EFI_OLD_MEMMAP to be set in order to boot. The recent changes to the EFI memory mapping code in: d2f7cbe7b26a ("x86/efi: Runtime services virtual mapping") exposed some issues with the fact that we were relying on the EFI memory mapping mechanisms to map in our MMRs for us, after commit d394f2d9d8e1. Rather than revert the entire commit and go back to forcing EFI_OLD_MEMMAP on all UVs, we're going to add the call to map_low_mmrs() back into uv_system_init(), and then fix up our EFI runtime calls to use the appropriate page table. For now, UV2+ will still need efi=old_map to boot, but there will be other changes soon that should eliminate the need for this. Signed-off-by: Alex Thorlton <[email protected]> Cc: Matt Fleming <[email protected]> Cc: Adam Buchbinder <[email protected]> Cc: Len Brown <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Russ Anderson <[email protected]> Cc: Dimitri Sivanich <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index 8f4942e2bcbb..d7ce96a7daca 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -891,9 +891,7 @@ void __init uv_system_init(void)
}
pr_info("UV: Found %s hub\n", hub);
- /* We now only need to map the MMRs on UV1 */
- if (is_uv1_hub())
- map_low_mmrs();
+ map_low_mmrs();
m_n_config.v = uv_read_local_mmr(UVH_RH_GAM_CONFIG_MMR );
m_val = m_n_config.s.m_skt;