Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull EFI fixes from Ingo Molnar:
"Two EFI fixes: a quirk for weird systabs, plus add more robust error
handling in the old 1:1 mapping code"

* 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
efi: Allow the number of EFI configuration tables entries to be zero
efi/x86/Add missing error handling to old_memmap 1:1 mapping code

+14 -3
+2
arch/x86/platform/efi/efi.c
··· 85 85 pgd_t *save_pgd; 86 86 87 87 save_pgd = efi_call_phys_prolog(); 88 + if (!save_pgd) 89 + return EFI_ABORTED; 88 90 89 91 /* Disable interrupts around EFI calls: */ 90 92 local_irq_save(flags);
+6 -3
arch/x86/platform/efi/efi_64.c
··· 84 84 85 85 if (!efi_enabled(EFI_OLD_MEMMAP)) { 86 86 efi_switch_mm(&efi_mm); 87 - return NULL; 87 + return efi_mm.pgd; 88 88 } 89 89 90 90 early_code_mapping_set_exec(1); 91 91 92 92 n_pgds = DIV_ROUND_UP((max_pfn << PAGE_SHIFT), PGDIR_SIZE); 93 93 save_pgd = kmalloc_array(n_pgds, sizeof(*save_pgd), GFP_KERNEL); 94 + if (!save_pgd) 95 + return NULL; 94 96 95 97 /* 96 98 * Build 1:1 identity mapping for efi=old_map usage. Note that ··· 140 138 pgd_offset_k(pgd * PGDIR_SIZE)->pgd &= ~_PAGE_NX; 141 139 } 142 140 143 - out: 144 141 __flush_tlb_all(); 145 - 146 142 return save_pgd; 143 + out: 144 + efi_call_phys_epilog(save_pgd); 145 + return NULL; 147 146 } 148 147 149 148 void __init efi_call_phys_epilog(pgd_t *save_pgd)
+3
arch/x86/platform/efi/quirks.c
··· 513 513 void *p, *tablep; 514 514 struct efi_setup_data *data; 515 515 516 + if (nr_tables == 0) 517 + return 0; 518 + 516 519 if (!efi_setup) 517 520 return 0; 518 521
+3
drivers/firmware/efi/efi.c
··· 636 636 void *config_tables; 637 637 int sz, ret; 638 638 639 + if (efi.systab->nr_tables == 0) 640 + return 0; 641 + 639 642 if (efi_enabled(EFI_64BIT)) 640 643 sz = sizeof(efi_config_table_64_t); 641 644 else