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:03:34 +0000 From: Ben Hutchings <ben@...adent.org.uk> To: linux-kernel@...r.kernel.org, stable@...r.kernel.org CC: akpm@...ux-foundation.org, "Linus Torvalds" <torvalds@...ux-foundation.org>, "Paul Turner" <pjt@...gle.com>, "Tim Chen" <tim.c.chen@...ux.intel.com>, "Peter Zijlstra" <peterz@...radead.org>, gnomes@...rguk.ukuu.org.uk, "Ingo Molnar" <mingo@...nel.org>, "Rik van Riel" <riel@...hat.com>, "Andi Kleen" <ak@...ux.intel.com>, "Dave Hansen" <dave.hansen@...el.com>, "Thomas Gleixner" <tglx@...utronix.de>, "Josh Poimboeuf" <jpoimboe@...hat.com>, "Greg Kroah-Hartman" <gregkh@...ux-foundation.org>, "Jiri Kosina" <jikos@...nel.org>, "Andy Lutomirski" <luto@...capital.net>, "Kees Cook" <keescook@...gle.com>, "Arjan van de Ven" <arjan@...ux.intel.com>, thomas.lendacky@....com Subject: [PATCH 3.2 065/104] x86/retpoline/irq32: Convert assembler indirect jumps 3.2.101-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Andi Kleen <ak@...ux.intel.com> commit 7614e913db1f40fff819b36216484dc3808995d4 upstream. Convert all indirect jumps in 32bit irq inline asm code to use non speculative sequences. Signed-off-by: Andi Kleen <ak@...ux.intel.com> Signed-off-by: Thomas Gleixner <tglx@...utronix.de> Acked-by: Arjan van de Ven <arjan@...ux.intel.com> Acked-by: Ingo Molnar <mingo@...nel.org> Cc: gnomes@...rguk.ukuu.org.uk Cc: Rik van Riel <riel@...hat.com> Cc: Josh Poimboeuf <jpoimboe@...hat.com> Cc: thomas.lendacky@....com Cc: Peter Zijlstra <peterz@...radead.org> Cc: Linus Torvalds <torvalds@...ux-foundation.org> Cc: Jiri Kosina <jikos@...nel.org> Cc: Andy Lutomirski <luto@...capital.net> Cc: Dave Hansen <dave.hansen@...el.com> Cc: Kees Cook <keescook@...gle.com> Cc: Tim Chen <tim.c.chen@...ux.intel.com> Cc: Greg Kroah-Hartman <gregkh@...ux-foundation.org> Cc: Paul Turner <pjt@...gle.com> Link: https://lkml.kernel.org/r/1515707194-20531-12-git-send-email-dwmw@amazon.co.uk [bwh: Backported to 3.2: adjust context] Signed-off-by: Ben Hutchings <ben@...adent.org.uk> --- arch/x86/kernel/irq_32.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c @@ -20,6 +20,7 @@ #include <linux/mm.h> #include <asm/apic.h> +#include <asm/nospec-branch.h> DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); EXPORT_PER_CPU_SYMBOL(irq_stat); @@ -64,11 +65,11 @@ static DEFINE_PER_CPU(union irq_ctx *, s static void call_on_stack(void *func, void *stack) { asm volatile("xchgl %%ebx,%%esp \n" - "call *%%edi \n" + CALL_NOSPEC "movl %%ebx,%%esp \n" : "=b" (stack) : "0" (stack), - "D"(func) + [thunk_target] "D"(func) : "memory", "cc", "edx", "ecx", "eax"); } @@ -107,11 +108,11 @@ execute_on_irq_stack(int overflow, struc call_on_stack(print_stack_overflow, isp); asm volatile("xchgl %%ebx,%%esp \n" - "call *%%edi \n" + CALL_NOSPEC "movl %%ebx,%%esp \n" : "=a" (arg1), "=d" (arg2), "=b" (isp) : "0" (irq), "1" (desc), "2" (isp), - "D" (desc->handle_irq) + [thunk_target] "D" (desc->handle_irq) : "memory", "cc", "ecx"); return 1; }
Powered by blists - more mailing lists