lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 12 Mar 2018 03:06:12 +0000 From: Ben Hutchings <ben@...adent.org.uk> To: linux-kernel@...r.kernel.org, stable@...r.kernel.org CC: akpm@...ux-foundation.org, "Ingo Molnar" <mingo@...nel.org>, "Borislav Petkov" <bp@...en8.de>, "Thomas Gleixner" <tglx@...utronix.de>, "Dave Hansen" <dave.hansen@...ux.intel.com>, "Eduardo Valentin" <eduval@...zon.com>, "Juergen Gross" <jgross@...e.com>, "Peter Zijlstra" <peterz@...radead.org>, "Denys Vlasenko" <dvlasenk@...hat.com>, "Josh Poimboeuf" <jpoimboe@...hat.com>, "David Laight" <David.Laight@...lab.com>, "Rik van Riel" <riel@...hat.com>, "Brian Gerst" <brgerst@...il.com>, keescook@...gle.com, "Dave Hansen" <dave.hansen@...el.com>, "David Woodhouse" <dwmw@...zon.co.uk>, "H. Peter Anvin" <hpa@...or.com>, "Will Deacon" <will.deacon@....com>, "Borislav Petkov" <bp@...e.de>, daniel.gruss@...k.tugraz.at, "Borislav Petkov" <bpetkov@...e.de>, "Linus Torvalds" <torvalds@...ux-foundation.org>, "Greg KH" <gregkh@...uxfoundation.org>, hughd@...gle.com, aliguori@...zon.com, "Boris Ostrovsky" <boris.ostrovsky@...cle.com>, "Andy Lutomirski" <luto@...nel.org> Subject: [PATCH 3.16 04/76] x86/cpufeatures: Make CPU bugs sticky 3.16.56-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Thomas Gleixner <tglx@...utronix.de> commit 6cbd2171e89b13377261d15e64384df60ecb530e upstream. There is currently no way to force CPU bug bits like CPU feature bits. That makes it impossible to set a bug bit once at boot and have it stick for all upcoming CPUs. Extend the force set/clear arrays to handle bug bits as well. Signed-off-by: Thomas Gleixner <tglx@...utronix.de> Reviewed-by: Borislav Petkov <bp@...e.de> Cc: Andy Lutomirski <luto@...nel.org> Cc: Boris Ostrovsky <boris.ostrovsky@...cle.com> Cc: Borislav Petkov <bp@...en8.de> Cc: Borislav Petkov <bpetkov@...e.de> Cc: Brian Gerst <brgerst@...il.com> Cc: Dave Hansen <dave.hansen@...el.com> Cc: Dave Hansen <dave.hansen@...ux.intel.com> Cc: David Laight <David.Laight@...lab.com> Cc: Denys Vlasenko <dvlasenk@...hat.com> Cc: Eduardo Valentin <eduval@...zon.com> Cc: Greg KH <gregkh@...uxfoundation.org> Cc: H. Peter Anvin <hpa@...or.com> Cc: Josh Poimboeuf <jpoimboe@...hat.com> Cc: Juergen Gross <jgross@...e.com> Cc: Linus Torvalds <torvalds@...ux-foundation.org> Cc: Peter Zijlstra <peterz@...radead.org> Cc: Rik van Riel <riel@...hat.com> Cc: Will Deacon <will.deacon@....com> Cc: aliguori@...zon.com Cc: daniel.gruss@...k.tugraz.at Cc: hughd@...gle.com Cc: keescook@...gle.com Link: https://lkml.kernel.org/r/20171204150606.992156574@linutronix.de Signed-off-by: Ingo Molnar <mingo@...nel.org> Signed-off-by: David Woodhouse <dwmw@...zon.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org> Signed-off-by: Ben Hutchings <ben@...adent.org.uk> --- arch/x86/include/asm/cpufeature.h | 2 ++ arch/x86/include/asm/processor.h | 4 ++-- arch/x86/kernel/cpu/common.c | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h @@ -286,6 +286,8 @@ extern const char * const x86_power_flag set_bit(bit, (unsigned long *)cpu_caps_set); \ } while (0) +#define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit) + #define cpu_has_fpu boot_cpu_has(X86_FEATURE_FPU) #define cpu_has_vme boot_cpu_has(X86_FEATURE_VME) #define cpu_has_de boot_cpu_has(X86_FEATURE_DE) --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h @@ -147,8 +147,8 @@ extern struct cpuinfo_x86 boot_cpu_data; extern struct cpuinfo_x86 new_cpu_data; extern struct tss_struct doublefault_tss; -extern __u32 cpu_caps_cleared[NCAPINTS]; -extern __u32 cpu_caps_set[NCAPINTS]; +extern __u32 cpu_caps_cleared[NCAPINTS + NBUGINTS]; +extern __u32 cpu_caps_set[NCAPINTS + NBUGINTS]; #ifdef CONFIG_SMP DECLARE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info); --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -441,8 +441,8 @@ static const char *table_lookup_model(st return NULL; /* Not found */ } -__u32 cpu_caps_cleared[NCAPINTS]; -__u32 cpu_caps_set[NCAPINTS]; +__u32 cpu_caps_cleared[NCAPINTS + NBUGINTS]; +__u32 cpu_caps_set[NCAPINTS + NBUGINTS]; void load_percpu_segment(int cpu) { @@ -674,7 +674,7 @@ static void apply_forced_caps(struct cpu { int i; - for (i = 0; i < NCAPINTS; i++) { + for (i = 0; i < NCAPINTS + NBUGINTS; i++) { c->x86_capability[i] &= ~cpu_caps_cleared[i]; c->x86_capability[i] |= cpu_caps_set[i]; }
Powered by blists - more mailing lists