x86 fixes
Subsystems (5)
Linus,
Please pull the latest x86-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-for-linus
# HEAD: 2ee27796f298b710992a677a7e4d35c8c588b17e x86/cpu/intel: Lower the "ENERGY_PERF_BIAS: Set to normal" message's log priority
Misc fixes all over the place: a console spam fix, section attributes fixes, a KASLR fix, a TLB stack-variable alignment fix, a reboot quirk, boot options related warnings fix, an LTO fix, a deadlock fix and an RDT fix.
Thanks,
Ingo
------------------>
Andi Kleen (1):
x86/cpu/bugs: Use __initconst for 'const' init data
Baoquan He (1):
x86/mm/KASLR: Fix the size of the direct mapping section
Colin Ian King (1):
x86/Kconfig: Fix spelling mistake "effectivness" -> "effectiveness"
Hans de Goede (1):
x86/cpu/intel: Lower the "ENERGY_PERF_BIAS: Set to normal" message's log priority
Jian-Hong Pan (1):
x86/reboot, efi: Use EFI reboot for Acer TravelMate X514-51T
Peter Zijlstra (1):
x86/mm/tlb: Revert "x86/mm: Align TLB invalidation info"
Sami Tolvanen (1):
x86/build/lto: Fix truncated .bss with -fdata-sections
Thomas Gleixner (2):
x86/speculation: Prevent deadlock on ssb_state::lock x86/mm: Prevent bogus warnings with "noexec=off"
Xiaochen Shen (1):
x86/resctrl: Do not repeat rdtgroup mode initialization
arch/x86/Kconfig | 2 +- arch/x86/kernel/cpu/bugs.c | 6 +++--- arch/x86/kernel/cpu/intel.c | 4 ++-- arch/x86/kernel/cpu/resctrl/rdtgroup.c | 3 ++- arch/x86/kernel/process.c | 8 ++++++-- arch/x86/kernel/reboot.c | 21 +++++++++++++++++++++ arch/x86/kernel/vmlinux.lds.S | 2 +- arch/x86/mm/dump_pagetables.c | 3 ++- arch/x86/mm/ioremap.c | 2 +- arch/x86/mm/kaslr.c | 2 +- arch/x86/mm/tlb.c | 2 +- include/linux/efi.h | 7 ++++++- 12 files changed, 47 insertions(+), 15 deletions(-)
arch/x86/Kconfig +1 -1
@@ -1499,7 +1499,7 @@ config X86_CPA_STATISTICS depends on DEBUG_FS ---help--- Expose statistics about the Change Page Attribute mechanims, which - helps to determine the effectivness of preserving large and huge + helps to determine the effectiveness of preserving large and huge page mappings when mapping protections are changed. config ARCH_HAS_MEM_ENCRYPT
arch/x86/kernel/cpu/bugs.c +3 -3
@@ -275,7 +275,7 @@ static const struct {const char *option;enum spectre_v2_user_cmd cmd;bool secure; -} v2_user_options[] __initdata = { +} v2_user_options[] __initconst = { { "auto", SPECTRE_V2_USER_CMD_AUTO, false }, { "off", SPECTRE_V2_USER_CMD_NONE, false }, { "on", SPECTRE_V2_USER_CMD_FORCE, true },
@@ -419,7 +419,7 @@ static const struct {const char *option;enum spectre_v2_mitigation_cmd cmd;bool secure; -} mitigation_options[] __initdata = { +} mitigation_options[] __initconst = { { "off", SPECTRE_V2_CMD_NONE, false }, { "on", SPECTRE_V2_CMD_FORCE, true }, { "retpoline", SPECTRE_V2_CMD_RETPOLINE, false },
@@ -658,7 +658,7 @@ static const char * const ssb_strings[] = {static const struct {const char *option;enum ssb_mitigation_cmd cmd; -} ssb_mitigation_options[]__initdata = { +} ssb_mitigation_options[]__initconst = { {"auto" ,SPEC_STORE_BYPASS_CMD_AUTO },/* Platform decides */ {"on" ,SPEC_STORE_BYPASS_CMD_ON },/* Disable Speculative Store Bypass */ {"off" ,SPEC_STORE_BYPASS_CMD_NONE },/* Don't touch Speculative Store Bypass */
arch/x86/kernel/cpu/intel.c +2 -2
@@ -611,8 +611,8 @@ static void init_intel_energy_perf(struct cpuinfo_x86 *c)if ((epb &0xF ) !=ENERGY_PERF_BIAS_PERFORMANCE )return ; -pr_warn_once ("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n" ); -pr_warn_once ("ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)\n" ); +pr_info_once ("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n" ); +pr_info_once ("ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)\n" ); epb = (epb & ~0xF ) |ENERGY_PERF_BIAS_NORMAL ;wrmsrl (MSR_IA32_ENERGY_PERF_BIAS , epb); }
arch/x86/kernel/cpu/resctrl/rdtgroup.c +2 -1
@@ -2610,9 +2610,10 @@ static int rdtgroup_init_alloc(struct rdtgroup *rdtgrp)rdt_last_cmd_puts ("Failed to initialize allocations\n" );return ret; } - rdtgrp->mode =RDT_MODE_SHAREABLE ; } + rdtgrp->mode =RDT_MODE_SHAREABLE ; +return 0 ; }
arch/x86/kernel/process.c +6 -2
@@ -426,6 +426,8 @@ static __always_inline void __speculation_ctrl_update(unsigned long tifp,u64 msr = x86_spec_ctrl_base;bool updmsr = false; +lockdep_assert_irqs_disabled (); +/* * If TIF_SSBD is different, select the proper mitigation * method. Note that if SSBD mitigation is disabled or permanentely
@@ -477,10 +479,12 @@ static unsigned long speculation_ctrl_update_tif(struct task_struct *tsk)void speculation_ctrl_update (unsigned long tif) { +unsigned long flags; +/* Forced update. Make sure all relevant TIF flags are different */ -preempt_disable (); +local_irq_save (flags);__speculation_ctrl_update (~tif, tif); -preempt_enable (); +local_irq_restore (flags); }/* Called from seccomp/prctl update */
arch/x86/kernel/reboot.c +21 -0
@@ -81,6 +81,19 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)return 0 ; } +/* +* Some machines don't handle the default ACPI reboot method and +* require the EFI reboot method: +*/ +static int __init set_efi_reboot (const struct dmi_system_id *d) +{ +if (reboot_type !=BOOT_EFI && !efi_runtime_disabled ()) { + reboot_type =BOOT_EFI ; +pr_info ("%s series board detected. Selecting EFI-method for reboot.\n" , d->ident); + } +return 0 ; +} +void __noreturn machine_real_restart (unsigned int type) {local_irq_disable ();
@@ -166,6 +179,14 @@ static const struct dmi_system_id reboot_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "AOA110"), }, }, + { /* Handle reboot issue on Acer TravelMate X514-51T */ + .callback = set_efi_reboot, + .ident = "Acer TravelMate X514-51T", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate X514-51T"), + }, + },/* Apple */ {/* Handle problems with rebooting on Apple MacBook5 */
arch/x86/kernel/vmlinux.lds.S +1 -1
@@ -362,7 +362,7 @@ SECTIONS .bss : AT(ADDR(.bss) - LOAD_OFFSET) { __bss_start = .; *(.bss..page_aligned) - *(.bss) + *(BSS_MAIN) BSS_DECRYPTED . = ALIGN(PAGE_SIZE); __bss_stop = .;
arch/x86/mm/dump_pagetables.c +2 -1
@@ -259,7 +259,8 @@ static void note_wx(struct pg_state *st)#endif /* Account the WX pages */ st->wx_pages += npages; -WARN_ONCE (1 ,"x86/mm: Found insecure W+X mapping at address %pS\n" , +WARN_ONCE (__supported_pte_mask & _PAGE_NX, +"x86/mm: Found insecure W+X mapping at address %pS\n" , (void *)st->start_address); }
arch/x86/mm/ioremap.c +1 -1
@@ -825,7 +825,7 @@ void __init __early_set_fixmap(enum fixed_addresses idx, pte =early_ioremap_pte (addr);/* Sanitize 'prot' against any unsupported bits: */ -pgprot_val (flags) &= __default_kernel_pte_mask; +pgprot_val (flags) &= __supported_pte_mask;if (pgprot_val (flags))set_pte (pte,pfn_pte (phys >>PAGE_SHIFT , flags));
arch/x86/mm/kaslr.c +1 -1
@@ -94,7 +94,7 @@ void __init kernel_randomize_memory(void)if (!kaslr_memory_enabled ())return ; - kaslr_regions[0 ].size_tb =1 << (__PHYSICAL_MASK_SHIFT -TB_SHIFT ); + kaslr_regions[0 ].size_tb =1 << (MAX_PHYSMEM_BITS -TB_SHIFT ); kaslr_regions[1 ].size_tb =VMALLOC_SIZE_TB ;/*
arch/x86/mm/tlb.c +1 -1
@@ -728,7 +728,7 @@ void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, {int cpu; -struct flush_tlb_info info__aligned(SMP_CACHE_BYTES) = { +struct flush_tlb_info info = { .mm = mm, .stride_shift = stride_shift, .freed_tables = freed_tables,
include/linux/efi.h +6 -1
@@ -1611,7 +1611,12 @@ efi_status_t efi_setup_gop(efi_system_table_t *sys_table_arg, struct screen_info *si, efi_guid_t *proto, unsigned long size); -bool efi_runtime_disabled (void ); +#ifdef CONFIG_EFI +extern bool efi_runtime_disabled (void ); +#else +static inline bool efi_runtime_disabled (void ) {return true; } +#endif +extern void efi_call_virt_check_flags (unsigned long flags,const char *call);extern unsigned long efi_call_virt_save_flags (void );
The pull request you sent on Sat, 20 Apr 2019 09:38:09 +0200:
The pull request you sent on Sat, 20 Apr 2019 09:38:09 +0200:
Quoted 1 line
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.gitx86-urgent-for-linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/1fd91d719eb1ae83ef500eb4148d11db9db39a41
Thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker