[GIT PULL] x86/core for v5.17

From: Borislav Petkov
Date: Wed Jan 12 2022 - 14:16:26 EST


Hi Linus,

please pull the x86/core pile for 5.17.

This one got delayed a bit due to a testcase failure. But that has been
taken care of now and the last (newest) patch is the fix.

Thx.

---

The following changes since commit 0fcfb00b28c0b7884635dacf38e46d60bf3d4eb1:

Linux 5.16-rc4 (2021-12-05 14:08:22 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tags/x86_core_for_v5.17_rc1

for you to fetch changes up to 9cdbeec4096804083944d05da96bbaf59a1eb4f9:

x86/entry_32: Fix segment exceptions (2022-01-12 16:38:25 +0100)

----------------------------------------------------------------
- Get rid of all the .fixup sections because this generates
misleading/wrong stacktraces and confuse RELIABLE_STACKTRACE and
LIVEPATCH as the backtrace misses the function which is being fixed up.

- Add Straight Light Speculation mitigation support which uses a new
compiler switch -mharden-sls= which sticks an INT3 after a RET or an
indirect branch in order to block speculation after them. Reportedly,
CPUs do speculate behind such insns.

- The usual set of cleanups and improvements

----------------------------------------------------------------
Eric Dumazet (1):
x86/csum: Rewrite/optimize csum_partial()

Peter Zijlstra (31):
x86: Move RETPOLINE*_CFLAGS to arch Makefile
x86: Use -mindirect-branch-cs-prefix for RETPOLINE builds
x86/lib/atomic64_386_32: Rename things
x86: Prepare asm files for straight-line-speculation
x86: Prepare inline-asm for straight-line-speculation
objtool: Add straight-line-speculation validation
x86/alternative: Relax text_poke_bp() constraint
x86: Add straight-line-speculation mitigation
bitfield.h: Fix "type of reg too small for mask" test
x86/mmx_32: Remove X86_USE_3DNOW
x86/copy_user_64: Remove .fixup usage
x86/copy_mc_64: Remove .fixup usage
x86/entry_64: Remove .fixup usage
x86/entry_32: Remove .fixup usage
x86/extable: Extend extable functionality
x86/msr: Remove .fixup usage
x86/futex: Remove .fixup usage
x86/uaccess: Remove .fixup usage
x86/xen: Remove .fixup usage
x86/fpu: Remove .fixup usage
x86/segment: Remove .fixup usage
x86/kvm: Remove .fixup usage
x86/vmx: Remove .fixup usage
x86/checksum_32: Remove .fixup usage
x86/sgx: Remove .fixup usage
x86/usercopy_32: Simplify __copy_user_intel_nocache()
x86/usercopy: Remove .fixup usage
x86/word-at-a-time: Remove .fixup usage
x86: Remove .fixup section
objtool: Remove .fixup handling
x86/entry_32: Fix segment exceptions

Makefile | 11 -
arch/x86/Kconfig | 14 +-
arch/x86/Kconfig.cpu | 4 -
arch/x86/Makefile | 16 +
arch/x86/boot/compressed/efi_thunk_64.S | 2 +-
arch/x86/boot/compressed/head_64.S | 8 +-
arch/x86/boot/compressed/mem_encrypt.S | 6 +-
arch/x86/crypto/aegis128-aesni-asm.S | 48 +--
arch/x86/crypto/aes_ctrby8_avx-x86_64.S | 2 +-
arch/x86/crypto/aesni-intel_asm.S | 56 ++--
arch/x86/crypto/aesni-intel_avx-x86_64.S | 40 +--
arch/x86/crypto/blake2s-core.S | 4 +-
arch/x86/crypto/blowfish-x86_64-asm_64.S | 12 +-
arch/x86/crypto/camellia-aesni-avx-asm_64.S | 14 +-
arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 14 +-
arch/x86/crypto/camellia-x86_64-asm_64.S | 12 +-
arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 12 +-
arch/x86/crypto/cast6-avx-x86_64-asm_64.S | 10 +-
arch/x86/crypto/chacha-avx2-x86_64.S | 6 +-
arch/x86/crypto/chacha-avx512vl-x86_64.S | 6 +-
arch/x86/crypto/chacha-ssse3-x86_64.S | 8 +-
arch/x86/crypto/crc32-pclmul_asm.S | 2 +-
arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 2 +-
arch/x86/crypto/crct10dif-pcl-asm_64.S | 2 +-
arch/x86/crypto/des3_ede-asm_64.S | 4 +-
arch/x86/crypto/ghash-clmulni-intel_asm.S | 6 +-
arch/x86/crypto/nh-avx2-x86_64.S | 2 +-
arch/x86/crypto/nh-sse2-x86_64.S | 2 +-
arch/x86/crypto/serpent-avx-x86_64-asm_64.S | 10 +-
arch/x86/crypto/serpent-avx2-asm_64.S | 10 +-
arch/x86/crypto/serpent-sse2-i586-asm_32.S | 6 +-
arch/x86/crypto/serpent-sse2-x86_64-asm_64.S | 6 +-
arch/x86/crypto/sha1_avx2_x86_64_asm.S | 2 +-
arch/x86/crypto/sha1_ni_asm.S | 2 +-
arch/x86/crypto/sha1_ssse3_asm.S | 2 +-
arch/x86/crypto/sha256-avx-asm.S | 2 +-
arch/x86/crypto/sha256-avx2-asm.S | 2 +-
arch/x86/crypto/sha256-ssse3-asm.S | 2 +-
arch/x86/crypto/sha256_ni_asm.S | 2 +-
arch/x86/crypto/sha512-avx-asm.S | 2 +-
arch/x86/crypto/sha512-avx2-asm.S | 2 +-
arch/x86/crypto/sha512-ssse3-asm.S | 2 +-
arch/x86/crypto/sm4-aesni-avx-asm_64.S | 12 +-
arch/x86/crypto/sm4-aesni-avx2-asm_64.S | 8 +-
arch/x86/crypto/twofish-avx-x86_64-asm_64.S | 10 +-
arch/x86/crypto/twofish-i586-asm_32.S | 4 +-
arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 6 +-
arch/x86/crypto/twofish-x86_64-asm_64.S | 4 +-
arch/x86/entry/entry_32.S | 37 +--
arch/x86/entry/entry_64.S | 23 +-
arch/x86/entry/thunk_32.S | 2 +-
arch/x86/entry/thunk_64.S | 2 +-
arch/x86/entry/vdso/vdso-layout.lds.S | 1 -
arch/x86/entry/vdso/vdso32/system_call.S | 2 +-
arch/x86/entry/vdso/vsgx.S | 2 +-
arch/x86/entry/vsyscall/vsyscall_emu_64.S | 6 +-
arch/x86/include/asm/asm.h | 37 +++
arch/x86/include/asm/extable.h | 6 +-
arch/x86/include/asm/extable_fixup_types.h | 59 +++-
arch/x86/include/asm/futex.h | 28 +-
arch/x86/include/asm/insn-eval.h | 2 +
arch/x86/include/asm/linkage.h | 14 +
arch/x86/include/asm/mmx.h | 15 -
arch/x86/include/asm/msr.h | 26 +-
arch/x86/include/asm/page_32.h | 14 -
arch/x86/include/asm/paravirt.h | 2 +-
arch/x86/include/asm/qspinlock_paravirt.h | 4 +-
arch/x86/include/asm/required-features.h | 4 -
arch/x86/include/asm/segment.h | 9 +-
arch/x86/include/asm/sgx.h | 18 ++
arch/x86/include/asm/static_call.h | 2 +-
arch/x86/include/asm/string_32.h | 33 ---
arch/x86/include/asm/uaccess.h | 39 ++-
arch/x86/include/asm/word-at-a-time.h | 66 +++--
arch/x86/include/asm/xen/page.h | 14 +-
arch/x86/kernel/acpi/wakeup_32.S | 6 +-
arch/x86/kernel/alternative.c | 51 +++-
arch/x86/kernel/cpu/sgx/encls.h | 36 +--
arch/x86/kernel/fpu/legacy.h | 6 +-
arch/x86/kernel/fpu/xstate.h | 6 +-
arch/x86/kernel/ftrace.c | 2 +-
arch/x86/kernel/ftrace_32.S | 6 +-
arch/x86/kernel/ftrace_64.S | 8 +-
arch/x86/kernel/head_32.S | 2 +-
arch/x86/kernel/irqflags.S | 2 +-
arch/x86/kernel/kprobes/core.c | 2 +-
arch/x86/kernel/paravirt.c | 4 +-
arch/x86/kernel/relocate_kernel_32.S | 10 +-
arch/x86/kernel/relocate_kernel_64.S | 10 +-
arch/x86/kernel/sev_verify_cbit.S | 2 +-
arch/x86/kernel/static_call.c | 5 +-
arch/x86/kernel/verify_cpu.S | 4 +-
arch/x86/kernel/vmlinux.lds.S | 1 -
arch/x86/kvm/emulate.c | 16 +-
arch/x86/kvm/svm/vmenter.S | 4 +-
arch/x86/kvm/vmx/vmenter.S | 14 +-
arch/x86/kvm/vmx/vmx_ops.h | 16 +-
arch/x86/lib/Makefile | 1 -
arch/x86/lib/atomic64_386_32.S | 86 +++---
arch/x86/lib/atomic64_cx8_32.S | 16 +-
arch/x86/lib/checksum_32.S | 27 +-
arch/x86/lib/clear_page_64.S | 6 +-
arch/x86/lib/cmpxchg16b_emu.S | 4 +-
arch/x86/lib/cmpxchg8b_emu.S | 4 +-
arch/x86/lib/copy_mc_64.S | 18 +-
arch/x86/lib/copy_page_64.S | 4 +-
arch/x86/lib/copy_user_64.S | 42 +--
arch/x86/lib/csum-copy_64.S | 2 +-
arch/x86/lib/csum-partial_64.c | 183 ++++++------
arch/x86/lib/error-inject.c | 3 +-
arch/x86/lib/getuser.S | 22 +-
arch/x86/lib/hweight.S | 6 +-
arch/x86/lib/insn-eval.c | 71 +++--
arch/x86/lib/iomap_copy_64.S | 2 +-
arch/x86/lib/memcpy_32.c | 4 -
arch/x86/lib/memcpy_64.S | 12 +-
arch/x86/lib/memmove_64.S | 4 +-
arch/x86/lib/memset_64.S | 6 +-
arch/x86/lib/mmx_32.c | 388 -------------------------
arch/x86/lib/msr-reg.S | 4 +-
arch/x86/lib/putuser.S | 6 +-
arch/x86/lib/retpoline.S | 4 +-
arch/x86/lib/usercopy_32.c | 67 ++---
arch/x86/lib/usercopy_64.c | 8 +-
arch/x86/math-emu/div_Xsig.S | 2 +-
arch/x86/math-emu/div_small.S | 2 +-
arch/x86/math-emu/mul_Xsig.S | 6 +-
arch/x86/math-emu/polynom_Xsig.S | 2 +-
arch/x86/math-emu/reg_norm.S | 6 +-
arch/x86/math-emu/reg_round.S | 2 +-
arch/x86/math-emu/reg_u_add.S | 2 +-
arch/x86/math-emu/reg_u_div.S | 2 +-
arch/x86/math-emu/reg_u_mul.S | 2 +-
arch/x86/math-emu/reg_u_sub.S | 2 +-
arch/x86/math-emu/round_Xsig.S | 4 +-
arch/x86/math-emu/shr_Xsig.S | 8 +-
arch/x86/math-emu/wm_shrx.S | 16 +-
arch/x86/mm/extable.c | 113 +++++--
arch/x86/mm/mem_encrypt_boot.S | 4 +-
arch/x86/net/bpf_jit_comp.c | 2 +-
arch/x86/platform/efi/efi_stub_32.S | 2 +-
arch/x86/platform/efi/efi_stub_64.S | 2 +-
arch/x86/platform/efi/efi_thunk_64.S | 2 +-
arch/x86/platform/olpc/xo1-wakeup.S | 6 +-
arch/x86/power/hibernate_asm_32.S | 4 +-
arch/x86/power/hibernate_asm_64.S | 4 +-
arch/x86/um/checksum_32.S | 4 +-
arch/x86/um/setjmp_32.S | 2 +-
arch/x86/um/setjmp_64.S | 2 +-
arch/x86/xen/xen-asm.S | 12 +-
arch/x86/xen/xen-head.S | 2 +-
include/linux/bitfield.h | 19 +-
samples/ftrace/ftrace-direct-modify.c | 4 +-
samples/ftrace/ftrace-direct-too.c | 2 +-
samples/ftrace/ftrace-direct.c | 2 +-
scripts/Makefile.build | 3 +-
scripts/link-vmlinux.sh | 3 +
tools/arch/x86/include/asm/required-features.h | 4 -
tools/objtool/arch/x86/decode.c | 13 +-
tools/objtool/builtin-check.c | 3 +-
tools/objtool/check.c | 22 +-
tools/objtool/include/objtool/arch.h | 1 +
tools/objtool/include/objtool/builtin.h | 2 +-
163 files changed, 1047 insertions(+), 1349 deletions(-)

--
Regards/Gruss,
Boris.

SUSE Software Solutions Germany GmbH, GF: Ivo Totev, HRB 36809, AG Nürnberg