Patch "x86/mm: Add a 'noinvpcid' boot option to turn off INVPCID" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
x86/mm: Add a 'noinvpcid' boot option to turn off INVPCID
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-mm-add-a-noinvpcid-boot-option-to-turn-off-invpcid.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d12a72b844a49d4162f24cefdab30bed3f86730eMon Sep 17 00:00:00 2001
From: Andy Lutomirski <[email protected]>
Date: Fri, 29 Jan 2016 11:42:58 -0800
Subject: x86/mm: Add a 'noinvpcid' boot option to turn off INVPCID
From: Andy Lutomirski <[email protected]>
commit d12a72b844a49d4162f24cefdab30bed3f86730e upstream.
This adds a chicken bit to turn off INVPCID in case something goes wrong. It's an early_param() because we do TLB flushes before we parse __setup() parameters.
--- Documentation/kernel-parameters.txt | 2 ++ arch/x86/kernel/cpu/common.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+)
Documentation/kernel-parameters.txt +2 -0
@@ -2519,6 +2519,8 @@ bytes respectively. Such letter suffixes nointroute [IA-64] + noinvpcid [X86] Disable the INVPCID cpu feature. + nojitter [IA-64] Disables jitter checking for ITC timers. no-kvmclock [X86,KVM] Disable paravirtualized KVM clock driver
arch/x86/kernel/cpu/common.c +16 -0
@@ -162,6 +162,22 @@ static int __init x86_mpx_setup(char *s) }__setup ("nompx" , x86_mpx_setup); +static int __init x86_noinvpcid_setup (char *s) +{ +/* noinvpcid doesn't accept parameters */ +if (s) +return -EINVAL ; + +/* do not emit a message if the feature is not present */ +if (!boot_cpu_has (X86_FEATURE_INVPCID )) +return 0 ; + +setup_clear_cpu_cap (X86_FEATURE_INVPCID ); +pr_info ("noinvpcid: INVPCID feature disabled\n" ); +return 0 ; +} +early_param ("noinvpcid" , x86_noinvpcid_setup); +#ifdef CONFIG_X86_32 static int cachesize_override =-1 ;static int disable_x86_serial_nr =1 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/x86-mm-sched-core-uninline-switch_mm.patch queue-4.4/x86-mm-add-a-noinvpcid-boot-option-to-turn-off-invpcid.patch queue-4.4/x86-irq-do-not-substract-irq_tlb_count-from-irq_call_count.patch queue-4.4/x86-mm-if-invpcid-is-available-use-it-to-flush-global-mappings.patch queue-4.4/x86-mm-add-invpcid-helpers.patch queue-4.4/sched-core-add-switch_mm_irqs_off-and-use-it-in-the-scheduler.patch queue-4.4/arm-hide-finish_arch_post_lock_switch-from-modules.patch queue-4.4/x86-mm-sched-core-turn-off-irqs-in-switch_mm.patch queue-4.4/mm-mmu_context-sched-core-fix-mmu_context.h-assumption.patch queue-4.4/x86-mm-build-arch-x86-mm-tlb.c-even-on-smp.patch queue-4.4/sched-core-idle_task_exit-shouldn-t-use-switch_mm_irqs_off.patch