mirror of https://gitee.com/openkylin/linux.git
* Disable the new EFI 1:1 virtual mapping for SGI UV because using it
causes a crash during boot - Borislav Petkov -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTFmV4AAoJEC84WcCNIz1VeSgP/1gykrBiH3Vr4H4c32la/arZ ktXRAT+RHdiebEXopt6+A1Pv6iyRYz3fBB1cKKb7q8fhDmVVmefGVkyO4qg4NbgL Ic1dP6uPgiFidcYML9/c6+UIovbwDD7f5wwJEjXxoZKg7b7P0TIykd8z8YPQ/6A6 fIY5Z2L9A8eVt4k1m6Dg2PUJ2B+XKOLa5BbL7gXB6u9avgAVAoLM9oQStss+V9Pv JQu+BZxeEwuxgi0LOxk1sFWXaAoRtgVDNH6nPK93CRvO2H83voWFf+OcW9hQWsF5 tLam6aMkvjuM5Dv1IA69PBAWrE/jxcMvjEdJyrGMWRKWtH/iTN4ez4EoFiO38o4R IgzXh9L5xbP3o+g3rntIu4h3/5yde9TRM18mER0lLTdNFZ8QzmLt4L0TptntRoBv bTXffILACq0uQU6T10P+EwseT472HphMeswaWVDkRxkN2hTCipFqQX0ekb0qbw3O yQeRyz1/t7DeA77iAGG96SfeziMdr44d6u6zDQPrTAJV+H1ZZ3XNIlJDi01CAg3b PDT6nHb/9V0tPZQebntZnczVRP+5EBdn5RbJaAMldEwVgjdjlFNY5slsF01KeCSF 6Cx6UyAI9XKuZMoayC3QDHKKWi+BTOwbKcVAdtZ1c9AMLt9pyxsDfdoOAV4zBiQa PsVs9t/l7TZoL1MQHlEJ =YIab -----END PGP SIGNATURE----- Merge tag 'efi-urgent' into x86/urgent * Disable the new EFI 1:1 virtual mapping for SGI UV because using it causes a crash during boot - Borislav Petkov Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
commit
3c0b566334
|
@ -134,6 +134,7 @@ extern void efi_setup_page_tables(void);
|
||||||
extern void __init old_map_region(efi_memory_desc_t *md);
|
extern void __init old_map_region(efi_memory_desc_t *md);
|
||||||
extern void __init runtime_code_page_mkexec(void);
|
extern void __init runtime_code_page_mkexec(void);
|
||||||
extern void __init efi_runtime_mkexec(void);
|
extern void __init efi_runtime_mkexec(void);
|
||||||
|
extern void __init efi_apply_memmap_quirks(void);
|
||||||
|
|
||||||
struct efi_setup_data {
|
struct efi_setup_data {
|
||||||
u64 fw_vendor;
|
u64 fw_vendor;
|
||||||
|
|
|
@ -1239,14 +1239,8 @@ void __init setup_arch(char **cmdline_p)
|
||||||
register_refined_jiffies(CLOCK_TICK_RATE);
|
register_refined_jiffies(CLOCK_TICK_RATE);
|
||||||
|
|
||||||
#ifdef CONFIG_EFI
|
#ifdef CONFIG_EFI
|
||||||
/* Once setup is done above, unmap the EFI memory map on
|
if (efi_enabled(EFI_BOOT))
|
||||||
* mismatched firmware/kernel archtectures since there is no
|
efi_apply_memmap_quirks();
|
||||||
* support for runtime services.
|
|
||||||
*/
|
|
||||||
if (efi_enabled(EFI_BOOT) && !efi_is_native()) {
|
|
||||||
pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n");
|
|
||||||
efi_unmap_memmap();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include <asm/tlbflush.h>
|
#include <asm/tlbflush.h>
|
||||||
#include <asm/x86_init.h>
|
#include <asm/x86_init.h>
|
||||||
#include <asm/rtc.h>
|
#include <asm/rtc.h>
|
||||||
|
#include <asm/uv/uv.h>
|
||||||
|
|
||||||
#define EFI_DEBUG
|
#define EFI_DEBUG
|
||||||
|
|
||||||
|
@ -1210,3 +1211,22 @@ static int __init parse_efi_cmdline(char *str)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
early_param("efi", parse_efi_cmdline);
|
early_param("efi", parse_efi_cmdline);
|
||||||
|
|
||||||
|
void __init efi_apply_memmap_quirks(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Once setup is done earlier, unmap the EFI memory map on mismatched
|
||||||
|
* firmware/kernel architectures since there is no support for runtime
|
||||||
|
* services.
|
||||||
|
*/
|
||||||
|
if (!efi_is_native()) {
|
||||||
|
pr_info("efi: Setup done, disabling due to 32/64-bit mismatch\n");
|
||||||
|
efi_unmap_memmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UV doesn't support the new EFI pagetable mapping yet.
|
||||||
|
*/
|
||||||
|
if (is_uv_system())
|
||||||
|
set_bit(EFI_OLD_MEMMAP, &x86_efi_facility);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue