Skip to content

Commit 634cd4b

Browse files
committed
Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull EFI updates from Ingo Molnar: "The main changes in this cycle were: - Cleanup of the GOP [graphics output] handling code in the EFI stub - Complete refactoring of the mixed mode handling in the x86 EFI stub - Overhaul of the x86 EFI boot/runtime code - Increase robustness for mixed mode code - Add the ability to disable DMA at the root port level in the EFI stub - Get rid of RWX mappings in the EFI memory map and page tables, where possible - Move the support code for the old EFI memory mapping style into its only user, the SGI UV1+ support code. - plus misc fixes, updates, smaller cleanups. ... and due to interactions with the RWX changes, another round of PAT cleanups make a guest appearance via the EFI tree - with no side effects intended" * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (75 commits) efi/x86: Disable instrumentation in the EFI runtime handling code efi/libstub/x86: Fix EFI server boot failure efi/x86: Disallow efi=old_map in mixed mode x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld efi/x86: avoid KASAN false positives when accessing the 1: 1 mapping efi: Fix handling of multiple efi_fake_mem= entries efi: Fix efi_memmap_alloc() leaks efi: Add tracking for dynamically allocated memmaps efi: Add a flags parameter to efi_memory_map efi: Fix comment for efi_mem_type() wrt absent physical addresses efi/arm: Defer probe of PCIe backed efifb on DT systems efi/x86: Limit EFI old memory map to SGI UV machines efi/x86: Avoid RWX mappings for all of DRAM efi/x86: Don't map the entire kernel text RW for mixed mode x86/mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd efi/libstub/x86: Fix unused-variable warning efi/libstub/x86: Use mandatory 16-byte stack alignment in mixed mode efi/libstub/x86: Use const attribute for efi_is_64bit() efi: Allow disabling PCI busmastering on bridges during boot efi/x86: Allow translating 64-bit arguments for mixed mode calls ...
2 parents d99391e + ac6119e commit 634cd4b

File tree

109 files changed

+2650
-2892
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+2650
-2892
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,10 +1165,10 @@
11651165

11661166
efi= [EFI]
11671167
Format: { "old_map", "nochunk", "noruntime", "debug",
1168-
"nosoftreserve" }
1168+
"nosoftreserve", "disable_early_pci_dma",
1169+
"no_disable_early_pci_dma" }
11691170
old_map [X86-64]: switch to the old ioremap-based EFI
1170-
runtime services mapping. 32-bit still uses this one by
1171-
default.
1171+
runtime services mapping. [Needs CONFIG_X86_UV=y]
11721172
nochunk: disable reading files in "chunks" in the EFI
11731173
boot stub, as chunking can cause problems with some
11741174
firmware implementations.
@@ -1180,6 +1180,10 @@
11801180
claim. Specify efi=nosoftreserve to disable this
11811181
reservation and treat the memory by its base type
11821182
(i.e. EFI_CONVENTIONAL_MEMORY / "System RAM").
1183+
disable_early_pci_dma: Disable the busmaster bit on all
1184+
PCI bridges while in the EFI boot stub
1185+
no_disable_early_pci_dma: Leave the busmaster bit set
1186+
on all PCI bridges while in the EFI boot stub
11831187

11841188
efi_no_storage_paranoia [EFI; X86]
11851189
Using this parameter you can use more than 50% of

arch/alpha/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_ALPHA_VMALLOC_H
2+
#define _ASM_ALPHA_VMALLOC_H
3+
4+
#endif /* _ASM_ALPHA_VMALLOC_H */

arch/arc/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_ARC_VMALLOC_H
2+
#define _ASM_ARC_VMALLOC_H
3+
4+
#endif /* _ASM_ARC_VMALLOC_H */

arch/arm/include/asm/efi.h

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,16 @@ void efi_virtmap_unload(void);
5050

5151
/* arch specific definitions used by the stub code */
5252

53-
#define efi_call_early(f, ...) sys_table_arg->boottime->f(__VA_ARGS__)
54-
#define __efi_call_early(f, ...) f(__VA_ARGS__)
55-
#define efi_call_runtime(f, ...) sys_table_arg->runtime->f(__VA_ARGS__)
56-
#define efi_is_64bit() (false)
53+
#define efi_bs_call(func, ...) efi_system_table()->boottime->func(__VA_ARGS__)
54+
#define efi_rt_call(func, ...) efi_system_table()->runtime->func(__VA_ARGS__)
55+
#define efi_is_native() (true)
5756

58-
#define efi_table_attr(table, attr, instance) \
59-
((table##_t *)instance)->attr
57+
#define efi_table_attr(inst, attr) (inst->attr)
6058

61-
#define efi_call_proto(protocol, f, instance, ...) \
62-
((protocol##_t *)instance)->f(instance, ##__VA_ARGS__)
59+
#define efi_call_proto(inst, func, ...) inst->func(inst, ##__VA_ARGS__)
6360

64-
struct screen_info *alloc_screen_info(efi_system_table_t *sys_table_arg);
65-
void free_screen_info(efi_system_table_t *sys_table, struct screen_info *si);
61+
struct screen_info *alloc_screen_info(void);
62+
void free_screen_info(struct screen_info *si);
6663

6764
static inline void efifb_setup_from_dmi(struct screen_info *si, const char *opt)
6865
{

arch/arm/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_ARM_VMALLOC_H
2+
#define _ASM_ARM_VMALLOC_H
3+
4+
#endif /* _ASM_ARM_VMALLOC_H */

arch/arm64/include/asm/efi.h

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,17 @@ static inline unsigned long efi_get_max_initrd_addr(unsigned long dram_base,
9393
return (image_addr & ~(SZ_1G - 1UL)) + (1UL << (VA_BITS_MIN - 1));
9494
}
9595

96-
#define efi_call_early(f, ...) sys_table_arg->boottime->f(__VA_ARGS__)
97-
#define __efi_call_early(f, ...) f(__VA_ARGS__)
98-
#define efi_call_runtime(f, ...) sys_table_arg->runtime->f(__VA_ARGS__)
99-
#define efi_is_64bit() (true)
96+
#define efi_bs_call(func, ...) efi_system_table()->boottime->func(__VA_ARGS__)
97+
#define efi_rt_call(func, ...) efi_system_table()->runtime->func(__VA_ARGS__)
98+
#define efi_is_native() (true)
10099

101-
#define efi_table_attr(table, attr, instance) \
102-
((table##_t *)instance)->attr
100+
#define efi_table_attr(inst, attr) (inst->attr)
103101

104-
#define efi_call_proto(protocol, f, instance, ...) \
105-
((protocol##_t *)instance)->f(instance, ##__VA_ARGS__)
102+
#define efi_call_proto(inst, func, ...) inst->func(inst, ##__VA_ARGS__)
106103

107104
#define alloc_screen_info(x...) &screen_info
108105

109-
static inline void free_screen_info(efi_system_table_t *sys_table_arg,
110-
struct screen_info *si)
106+
static inline void free_screen_info(struct screen_info *si)
111107
{
112108
}
113109

arch/arm64/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_ARM64_VMALLOC_H
2+
#define _ASM_ARM64_VMALLOC_H
3+
4+
#endif /* _ASM_ARM64_VMALLOC_H */

arch/c6x/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_C6X_VMALLOC_H
2+
#define _ASM_C6X_VMALLOC_H
3+
4+
#endif /* _ASM_C6X_VMALLOC_H */

arch/csky/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_CSKY_VMALLOC_H
2+
#define _ASM_CSKY_VMALLOC_H
3+
4+
#endif /* _ASM_CSKY_VMALLOC_H */

arch/h8300/include/asm/vmalloc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#ifndef _ASM_H8300_VMALLOC_H
2+
#define _ASM_H8300_VMALLOC_H
3+
4+
#endif /* _ASM_H8300_VMALLOC_H */

0 commit comments

Comments
 (0)