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

index e985d6bf7d3a25d849a7db87c32824e68d70226e,acd86c850414e7f3adfffe860ffd22bd17e0d459..86d1fd4bf24c73dc895bc16f93615330129e89fc
@@@ -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
index 6f0a46730826e106b974944858e706253203e583,b97acecf3fd95667e2b67bba8f88bb80428480bb..45d4f7674678499df3316a4a797d665edd3c5d15
@@@ -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);
+ }