x86/cfi: Fix FineIBT
From: | Peter Zijlstra <peterz-AT-infradead.org> | |
To: | x86-AT-kernel.org, alyssa.milburn-AT-linux.intel.com | |
Subject: | [PATCH v2 0/6] x86/cfi: Fix FineIBT | |
Date: | Thu, 22 Jun 2023 16:42:18 +0200 | |
Message-ID: | <20230622144218.860926475@infradead.org> | |
Cc: | linux-kernel-AT-vger.kernel.org, peterz-AT-infradead.org, samitolvanen-AT-google.com, keescook-AT-chromium.org, jpoimboe-AT-kernel.org, joao-AT-overdrivepizza.com, brgerst-AT-gmail.com | |
Archive-link: | Article |
Hi! Alyssa reported a FineIBT issue (patch 6) which led to the discovery of a kCFI issue (patch 5) and a bunch of cleanups and enhancements (the rest). Backports can probably suffice with just the last two. Much thanks to Brian for the better ret_from_fork() cleanup. Tested using llvm-16 on an Alderlake with both FineIBT and kCFI. Also available at: git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/urgent (I'm aiming for the merge window, not this cycle) v1: https://lkml.kernel.org/r/20230615193546.949657149@infrad... --- arch/um/kernel/um_arch.c | 2 +- arch/x86/entry/entry_32.S | 54 +++++++--------------------- arch/x86/entry/entry_64.S | 35 ++++++------------ arch/x86/include/asm/alternative.h | 2 +- arch/x86/include/asm/ibt.h | 2 +- arch/x86/include/asm/nospec-branch.h | 4 +++ arch/x86/include/asm/switch_to.h | 4 ++- arch/x86/kernel/alternative.c | 69 +++++++++++++++++++++++++++++++++--- arch/x86/kernel/module.c | 2 +- arch/x86/kernel/process.c | 22 +++++++++++- 10 files changed, 120 insertions(+), 76 deletions(-)