linux/arch/x86/entry
Thomas Gleixner a7b3474cbb x86/irq: Make run_on_irqstack_cond() typesafe
Sami reported that run_on_irqstack_cond() requires the caller to cast
functions to mismatching types, which trips indirect call Control-Flow
Integrity (CFI) in Clang.

Instead of disabling CFI on that function, provide proper helpers for
the three call variants. The actual ASM code stays the same as that is
out of reach.

 [ bp: Fix __run_on_irqstack() prototype to match. ]

Fixes: 931b941459 ("x86/entry: Provide helpers for executing on the irqstack")
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Reported-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Sami Tolvanen <samitolvanen@google.com>
Cc: <stable@vger.kernel.org>
Link: https://github.com/ClangBuiltLinux/linux/issues/1052
Link: https://lkml.kernel.org/r/87pn6eb5tv.fsf@nanos.tec.linutronix.de
2020-09-22 22:13:34 +02:00
..
syscalls all arch: remove system call sys_sysctl 2020-08-14 19:56:56 -07:00
vdso xen: branch for v5.9-rc1b 2020-08-14 13:34:37 -07:00
vsyscall y2038: syscall implementation cleanups 2019-12-01 14:00:59 -08:00
calling.h x86/entry/64: Do not use RDPID in paranoid entry to accomodate KVM 2020-08-21 16:15:27 +02:00
common.c x86/irq: Make run_on_irqstack_cond() typesafe 2020-09-22 22:13:34 +02:00
entry_32.S xen: branch for v5.9-rc1b 2020-08-14 13:34:37 -07:00
entry_64_compat.S x86/entry/compat: Clear RAX high bits on Xen PV SYSENTER 2020-07-04 19:47:25 +02:00
entry_64.S x86/irq: Make run_on_irqstack_cond() typesafe 2020-09-22 22:13:34 +02:00
Makefile x86/entry: Actually disable stack protector 2020-07-19 13:07:10 +02:00
syscall_32.c x86/entry: Drop asmlinkage from syscalls 2020-03-21 16:03:25 +01:00
syscall_64.c x86/entry: Drop asmlinkage from syscalls 2020-03-21 16:03:25 +01:00
syscall_x32.c net: remove compat_sys_{get,set}sockopt 2020-07-19 18:16:40 -07:00
thunk_32.S x86/entry: Remove unused THUNKs 2020-08-26 12:41:54 +02:00
thunk_64.S x86/entry: Remove the TRACE_IRQS cruft 2020-06-11 15:15:19 +02:00