Merge remote-tracking branch 'tip/x86/urgent' into efi-for-mingo
authorMatt Fleming <matt.fleming@intel.com>
Wed, 5 Mar 2014 17:22:57 +0000 (17:22 +0000)
committerMatt Fleming <matt.fleming@intel.com>
Wed, 5 Mar 2014 17:31:41 +0000 (17:31 +0000)
Conflicts:
arch/x86/include/asm/efi.h

1  2 
arch/x86/include/asm/efi.h
arch/x86/kernel/setup.c
arch/x86/platform/efi/efi.c

@@@ -134,7 -134,7 +134,8 @@@ extern void efi_cleanup_page_tables(uns
  extern void __init old_map_region(efi_memory_desc_t *md);
  extern void __init runtime_code_page_mkexec(void);
  extern void __init efi_runtime_mkexec(void);
 +extern void __init efi_dump_pagetable(void);
+ extern void __init efi_apply_memmap_quirks(void);
  
  struct efi_setup_data {
        u64 fw_vendor;
Simple merge
@@@ -1302,3 -1211,22 +1303,22 @@@ static int __init parse_efi_cmdline(cha
        return 0;
  }
  early_param("efi", parse_efi_cmdline);
 -              set_bit(EFI_OLD_MEMMAP, &x86_efi_facility);
+ 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, &efi.flags);
+ }