[GIT PULL] x86/entry for 5.8

From: Borislav Petkov
Date: Sun Jun 28 2020 - 10:05:49 EST


Hi Linus,

please pull the x86/entry urgent pile which has accumulated since the
merge window. It is not the smallest but considering the almost complete
entry core rewrite, the amount of fixes to follow is somewhat higher
than usual, which is to be expected.

Thx.

---
The following changes since commit 8be3a53e18e0e1a98f288f6c7f5e9da3adbe9c49:

Merge tag 'erofs-for-5.8-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs (2020-06-24 17:39:30 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tags/x86_entry_for_5.8

for you to fetch changes up to 2c92d787cc9fad57d05c96bd117782183768258a:

Merge branch 'linus' into x86/entry, to resolve conflicts (2020-06-26 12:24:42 +0200)

----------------------------------------------------------------
Peter Zijlstra says:

These patches address a number of instrumentation issues that were found after
the x86/entry overhaul. When combined with rcu/urgent and objtool/urgent, these
patches make UBSAN/KASAN/KCSAN happy again.

Part of making this all work is bumping the minimum GCC version for KASAN
builds to gcc-8.3, the reason for this is that the __no_sanitize_address
function attribute is broken in GCC releases before that.

No known GCC version has a working __no_sanitize_undefined, however because the
only noinstr violation that results from this happens when an UB is found, we
treat it like WARN. That is, we allow it to violate the noinstr rules in order
to get the warning out.

----------------------------------------------------------------
Ingo Molnar (1):
Merge branch 'linus' into x86/entry, to resolve conflicts

Marco Elver (4):
kasan: Bump required compiler version
compiler_types.h: Add __no_sanitize_{address,undefined} to noinstr
compiler_attributes.h: Support no_sanitize_undefined check with GCC 4
kasan: Fix required compiler version

Peter Zijlstra (10):
x86, kcsan: Remove __no_kcsan_or_inline usage
kcsan: Remove __no_kcsan_or_inline
x86, kcsan: Add __no_kcsan to noinstr
x86/entry, cpumask: Provide non-instrumented variant of cpu_is_offline()
x86/entry, ubsan, objtool: Whitelist __ubsan_handle_*()
x86/entry, bug: Comment the instrumentation_begin() usage for WARN()
objtool: Don't consider vmlinux a C-file
x86/entry: Fixup bad_iret vs noinstr
x86/entry: Increase entry_stack size to a full page
x86/entry: Fix #UD vs WARN more

Documentation/dev-tools/kcsan.rst | 6 ---
arch/x86/include/asm/bitops.h | 6 +--
arch/x86/include/asm/bug.h | 6 +++
arch/x86/include/asm/cpumask.h | 18 +++++++++
arch/x86/include/asm/processor.h | 2 +-
arch/x86/kernel/cpu/mce/core.c | 2 +-
arch/x86/kernel/nmi.c | 2 +-
arch/x86/kernel/traps.c | 78 +++++++++++++++++++------------------
arch/x86/lib/memcpy_64.S | 4 ++
include/linux/compiler-clang.h | 8 ++++
include/linux/compiler-gcc.h | 6 +++
include/linux/compiler_attributes.h | 1 +
include/linux/compiler_types.h | 14 +++----
lib/Kconfig.kasan | 4 ++
tools/objtool/check.c | 30 +++++++++++++-
15 files changed, 126 insertions(+), 61 deletions(-)

--
Regards/Gruss,
Boris.

SUSE Software Solutions Germany GmbH, GF: Felix ImendÃrffer, HRB 36809, AG NÃrnberg