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 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
"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"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/cpu/intel: Lower the "ENERGY_PERF_BIAS: Set to normal" message's log priority
x86/cpu/bugs: Use __initconst for 'const' init data
x86/mm/KASLR: Fix the size of the direct mapping section
x86/Kconfig: Fix spelling mistake "effectivness" -> "effectiveness"
x86/mm/tlb: Revert "x86/mm: Align TLB invalidation info"
x86/reboot, efi: Use EFI reboot for Acer TravelMate X514-51T
x86/mm: Prevent bogus warnings with "noexec=off"
x86/build/lto: Fix truncated .bss with -fdata-sections
x86/speculation: Prevent deadlock on ssb_state::lock
x86/resctrl: Do not repeat rdtgroup mode initialization

+47 -15
+1 -1
arch/x86/Kconfig
··· 1499 1499 depends on DEBUG_FS 1500 1500 ---help--- 1501 1501 Expose statistics about the Change Page Attribute mechanims, which 1502 - helps to determine the effectivness of preserving large and huge 1502 + helps to determine the effectiveness of preserving large and huge 1503 1503 page mappings when mapping protections are changed. 1504 1504 1505 1505 config ARCH_HAS_MEM_ENCRYPT
+3 -3
arch/x86/kernel/cpu/bugs.c
··· 275 275 const char *option; 276 276 enum spectre_v2_user_cmd cmd; 277 277 bool secure; 278 - } v2_user_options[] __initdata = { 278 + } v2_user_options[] __initconst = { 279 279 { "auto", SPECTRE_V2_USER_CMD_AUTO, false }, 280 280 { "off", SPECTRE_V2_USER_CMD_NONE, false }, 281 281 { "on", SPECTRE_V2_USER_CMD_FORCE, true }, ··· 419 419 const char *option; 420 420 enum spectre_v2_mitigation_cmd cmd; 421 421 bool secure; 422 - } mitigation_options[] __initdata = { 422 + } mitigation_options[] __initconst = { 423 423 { "off", SPECTRE_V2_CMD_NONE, false }, 424 424 { "on", SPECTRE_V2_CMD_FORCE, true }, 425 425 { "retpoline", SPECTRE_V2_CMD_RETPOLINE, false }, ··· 658 658 static const struct { 659 659 const char *option; 660 660 enum ssb_mitigation_cmd cmd; 661 - } ssb_mitigation_options[] __initdata = { 661 + } ssb_mitigation_options[] __initconst = { 662 662 { "auto", SPEC_STORE_BYPASS_CMD_AUTO }, /* Platform decides */ 663 663 { "on", SPEC_STORE_BYPASS_CMD_ON }, /* Disable Speculative Store Bypass */ 664 664 { "off", SPEC_STORE_BYPASS_CMD_NONE }, /* Don't touch Speculative Store Bypass */
+2 -2
arch/x86/kernel/cpu/intel.c
··· 611 611 if ((epb & 0xF) != ENERGY_PERF_BIAS_PERFORMANCE) 612 612 return; 613 613 614 - pr_warn_once("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n"); 615 - pr_warn_once("ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)\n"); 614 + pr_info_once("ENERGY_PERF_BIAS: Set to 'normal', was 'performance'\n"); 615 + pr_info_once("ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)\n"); 616 616 epb = (epb & ~0xF) | ENERGY_PERF_BIAS_NORMAL; 617 617 wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, epb); 618 618 }
+2 -1
arch/x86/kernel/cpu/resctrl/rdtgroup.c
··· 2610 2610 rdt_last_cmd_puts("Failed to initialize allocations\n"); 2611 2611 return ret; 2612 2612 } 2613 - rdtgrp->mode = RDT_MODE_SHAREABLE; 2614 2613 } 2614 + 2615 + rdtgrp->mode = RDT_MODE_SHAREABLE; 2615 2616 2616 2617 return 0; 2617 2618 }
+6 -2
arch/x86/kernel/process.c
··· 426 426 u64 msr = x86_spec_ctrl_base; 427 427 bool updmsr = false; 428 428 429 + lockdep_assert_irqs_disabled(); 430 + 429 431 /* 430 432 * If TIF_SSBD is different, select the proper mitigation 431 433 * method. Note that if SSBD mitigation is disabled or permanentely ··· 479 477 480 478 void speculation_ctrl_update(unsigned long tif) 481 479 { 480 + unsigned long flags; 481 + 482 482 /* Forced update. Make sure all relevant TIF flags are different */ 483 - preempt_disable(); 483 + local_irq_save(flags); 484 484 __speculation_ctrl_update(~tif, tif); 485 - preempt_enable(); 485 + local_irq_restore(flags); 486 486 } 487 487 488 488 /* Called from seccomp/prctl update */
+21
arch/x86/kernel/reboot.c
··· 81 81 return 0; 82 82 } 83 83 84 + /* 85 + * Some machines don't handle the default ACPI reboot method and 86 + * require the EFI reboot method: 87 + */ 88 + static int __init set_efi_reboot(const struct dmi_system_id *d) 89 + { 90 + if (reboot_type != BOOT_EFI && !efi_runtime_disabled()) { 91 + reboot_type = BOOT_EFI; 92 + pr_info("%s series board detected. Selecting EFI-method for reboot.\n", d->ident); 93 + } 94 + return 0; 95 + } 96 + 84 97 void __noreturn machine_real_restart(unsigned int type) 85 98 { 86 99 local_irq_disable(); ··· 177 164 .matches = { 178 165 DMI_MATCH(DMI_SYS_VENDOR, "Acer"), 179 166 DMI_MATCH(DMI_PRODUCT_NAME, "AOA110"), 167 + }, 168 + }, 169 + { /* Handle reboot issue on Acer TravelMate X514-51T */ 170 + .callback = set_efi_reboot, 171 + .ident = "Acer TravelMate X514-51T", 172 + .matches = { 173 + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), 174 + DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate X514-51T"), 180 175 }, 181 176 }, 182 177
+1 -1
arch/x86/kernel/vmlinux.lds.S
··· 362 362 .bss : AT(ADDR(.bss) - LOAD_OFFSET) { 363 363 __bss_start = .; 364 364 *(.bss..page_aligned) 365 - *(.bss) 365 + *(BSS_MAIN) 366 366 BSS_DECRYPTED 367 367 . = ALIGN(PAGE_SIZE); 368 368 __bss_stop = .;
+2 -1
arch/x86/mm/dump_pagetables.c
··· 259 259 #endif 260 260 /* Account the WX pages */ 261 261 st->wx_pages += npages; 262 - WARN_ONCE(1, "x86/mm: Found insecure W+X mapping at address %pS\n", 262 + WARN_ONCE(__supported_pte_mask & _PAGE_NX, 263 + "x86/mm: Found insecure W+X mapping at address %pS\n", 263 264 (void *)st->start_address); 264 265 } 265 266
+1 -1
arch/x86/mm/ioremap.c
··· 825 825 pte = early_ioremap_pte(addr); 826 826 827 827 /* Sanitize 'prot' against any unsupported bits: */ 828 - pgprot_val(flags) &= __default_kernel_pte_mask; 828 + pgprot_val(flags) &= __supported_pte_mask; 829 829 830 830 if (pgprot_val(flags)) 831 831 set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, flags));
+1 -1
arch/x86/mm/kaslr.c
··· 94 94 if (!kaslr_memory_enabled()) 95 95 return; 96 96 97 - kaslr_regions[0].size_tb = 1 << (__PHYSICAL_MASK_SHIFT - TB_SHIFT); 97 + kaslr_regions[0].size_tb = 1 << (MAX_PHYSMEM_BITS - TB_SHIFT); 98 98 kaslr_regions[1].size_tb = VMALLOC_SIZE_TB; 99 99 100 100 /*
+1 -1
arch/x86/mm/tlb.c
··· 728 728 { 729 729 int cpu; 730 730 731 - struct flush_tlb_info info __aligned(SMP_CACHE_BYTES) = { 731 + struct flush_tlb_info info = { 732 732 .mm = mm, 733 733 .stride_shift = stride_shift, 734 734 .freed_tables = freed_tables,
+6 -1
include/linux/efi.h
··· 1611 1611 struct screen_info *si, efi_guid_t *proto, 1612 1612 unsigned long size); 1613 1613 1614 - bool efi_runtime_disabled(void); 1614 + #ifdef CONFIG_EFI 1615 + extern bool efi_runtime_disabled(void); 1616 + #else 1617 + static inline bool efi_runtime_disabled(void) { return true; } 1618 + #endif 1619 + 1615 1620 extern void efi_call_virt_check_flags(unsigned long flags, const char *call); 1616 1621 extern unsigned long efi_call_virt_save_flags(void); 1617 1622