Messages in this thread | | | Date | Tue, 27 Apr 2021 10:23:46 +0200 | From | Borislav Petkov <> | Subject | [GIT PULL] x86/core for v5.13 |
| |
Hi Linus,
x86/core was special this time around - we had a bunch of cross- dependencies due to parallel development happening, as it is noticeable from the (well documented :)) merge commits. Eventually, we ended up closing x86/cpu for this round, in favor of this branch. Thus, as a result, it has a lot of fancy new stuff in it, see tag message.
Please pull, thx.
---
The following changes since commit a5e13c6df0e41702d2b2c77c8ad41677ebb065b3:
Linux 5.12-rc5 (2021-03-28 15:48:16 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tags/x86_core_for_v5.13
for you to fetch changes up to 2c88d45edbb89029c1190bb3b136d2602f057c98:
x86, sched: Treat Intel SNC topology as default, COD as exception (2021-04-15 18:34:20 +0200)
---------------------------------------------------------------- - turn the stack canary into a normal __percpu variable on 32-bit which gets rid of the LAZY_GS stuff and a lot of code.
- Add an insn_decode() API which all users of the instruction decoder should preferrably use. Its goal is to keep the details of the instruction decoder away from its users and simplify and streamline how one decodes insns in the kernel. Convert its users to it.
- kprobes improvements and fixes
- Set the maximum DIE per package variable on Hygon
- Rip out the dynamic NOP selection and simplify all the machinery around selecting NOPs. Use the simplified NOPs in objtool now too.
- Add Xeon Sapphire Rapids to list of CPUs that support PPIN
- Simplify the retpolines by folding the entire thing into an alternative now that objtool can handle alternatives with stack ops. Then, have objtool rewrite the call to the retpoline with the alternative which then will get patched at boot time.
- Document Intel uarch per models in intel-family.h
- Make Sub-NUMA Clustering topology the default and Cluster-on-Die the exception on Intel.
---------------------------------------------------------------- Alison Schofield (1): x86, sched: Treat Intel SNC topology as default, COD as exception
Andrew Cooper (1): x86/cpu: Comment Skylake server stepping too
Andy Lutomirski (2): x86/stackprotector/32: Make the canary into a regular percpu variable x86/entry/32: Remove leftover macros after stackprotector cleanups
Borislav Petkov (25): Merge tag 'v5.12-rc3' into x86/core Merge 'x86/seves' into x86/core x86/insn: Rename insn_decode() to insn_decode_from_regs() x86/insn: Add @buf_len param to insn_init() kernel-doc comment x86/insn: Add a __ignore_sync_check__ marker x86/insn: Add an insn_decode() API x86/insn-eval: Handle return values from the decoder x86/boot/compressed/sev-es: Convert to insn_decode() perf/x86/intel/ds: Check insn_get_length() retval perf/x86/intel/ds: Check return values of insn decoder functions x86/alternative: Use insn_decode() x86/mce: Convert to insn_decode() x86/kprobes: Convert to insn_decode() x86/sev-es: Split vc_decode_insn() x86/sev-es: Convert to insn_decode() x86/traps: Convert to insn_decode() x86/uprobes: Convert to insn_decode() x86/tools/insn_decoder_test: Convert to insn_decode() tools/objtool: Convert to insn_decode() x86/tools/insn_sanity: Convert to insn_decode() tools/perf: Convert to insn_decode() x86/insn: Remove kernel_insn_init() x86/insn: Make insn_complete() static tools/insn: Restore the relative include paths for cross building Merge 'x86/alternatives'
Ingo Molnar (2): Merge tag 'v5.12-rc5' into WIP.x86/core, to pick up recent NOP related changes Merge branch 'x86/cpu' into WIP.x86/core, to merge the NOP changes & resolve a semantic conflict
Masami Hiramatsu (5): x86/kprobes: Retrieve correct opcode for group instruction x86/kprobes: Identify far indirect JMP correctly x86/kprobes: Use int3 instead of debug trap for single-step x86/kprobes: Fix to check non boostable prefixes correctly x86/kprobes: Fix to identify indirect jmp and others using range case
Peter Zijlstra (19): x86: Remove dynamic NOP selection objtool/x86: Use asm/nops.h x86: Add insn_decode_kernel() x86/alternatives: Optimize optimize_nops() x86/retpoline: Simplify retpolines objtool: Correctly handle retpoline thunk calls objtool: Handle per arch retpoline naming objtool: Fix static_call list generation objtool: Rework the elf_rebuild_reloc_section() logic objtool: Add elf_create_reloc() helper objtool: Create reloc sections implicitly objtool: Extract elf_strtab_concat() objtool: Extract elf_symbol_add() objtool: Add elf_create_undef_symbol() objtool: Keep track of retpoline call sites objtool: Cache instruction relocs objtool: Skip magical retpoline .altinstr_replacement objtool/x86: Rewrite retpoline thunk calls x86/cpu: Resort and comment Intel models
Pu Wen (1): x86/cpu/hygon: Set __max_die_per_package on Hygon
Tony Luck (1): x86/mce: Add Xeon Sapphire Rapids to list of CPUs that support PPIN
Wei Yongjun (1): x86/kprobes: Move 'inline' to the beginning of the kprobe_is_ss() declaration
arch/arm/include/asm/paravirt.h | 14 +- arch/arm/kernel/paravirt.c | 9 +- arch/arm64/include/asm/paravirt.h | 14 +- arch/arm64/kernel/paravirt.c | 13 +- arch/x86/Kconfig | 9 +- arch/x86/Makefile | 8 + arch/x86/boot/compressed/sev-es.c | 11 +- arch/x86/entry/entry_32.S | 101 +--- arch/x86/entry/entry_64.S | 2 +- arch/x86/entry/vdso/vdso32/system_call.S | 2 +- arch/x86/events/intel/ds.c | 11 +- arch/x86/events/intel/lbr.c | 10 +- arch/x86/include/asm/alternative-asm.h | 114 ---- arch/x86/include/asm/alternative.h | 149 +++++- arch/x86/include/asm/asm-prototypes.h | 13 +- arch/x86/include/asm/cpufeature.h | 41 +- arch/x86/include/asm/cpufeatures.h | 4 +- arch/x86/include/asm/inat.h | 2 +- arch/x86/include/asm/insn-eval.h | 4 +- arch/x86/include/asm/insn.h | 46 +- arch/x86/include/asm/intel-family.h | 52 +- arch/x86/include/asm/irqflags.h | 7 +- arch/x86/include/asm/jump_label.h | 12 +- arch/x86/include/asm/kprobes.h | 21 +- arch/x86/include/asm/mshyperv.h | 2 +- arch/x86/include/asm/nops.h | 176 ++---- arch/x86/include/asm/nospec-branch.h | 7 +- arch/x86/include/asm/paravirt.h | 167 +++--- arch/x86/include/asm/paravirt_types.h | 210 +++----- arch/x86/include/asm/processor.h | 15 +- arch/x86/include/asm/ptrace.h | 5 +- arch/x86/include/asm/segment.h | 30 +- arch/x86/include/asm/smap.h | 5 +- arch/x86/include/asm/special_insns.h | 4 +- arch/x86/include/asm/stackprotector.h | 79 +-- arch/x86/include/asm/suspend_32.h | 6 +- arch/x86/kernel/Makefile | 3 +- arch/x86/kernel/alternative.c | 299 ++++------- arch/x86/kernel/asm-offsets.c | 7 - arch/x86/kernel/asm-offsets_32.c | 5 - arch/x86/kernel/cpu/amd.c | 5 - arch/x86/kernel/cpu/common.c | 5 +- arch/x86/kernel/cpu/hygon.c | 4 +- arch/x86/kernel/cpu/mce/intel.c | 1 + arch/x86/kernel/cpu/mce/severity.c | 12 +- arch/x86/kernel/cpu/vmware.c | 5 +- arch/x86/kernel/doublefault_32.c | 4 +- arch/x86/kernel/ftrace.c | 4 +- arch/x86/kernel/head_32.S | 18 +- arch/x86/kernel/jump_label.c | 32 +- arch/x86/kernel/kprobes/core.c | 596 +++++++++++++-------- arch/x86/kernel/kprobes/opt.c | 9 +- arch/x86/kernel/kvm.c | 2 +- arch/x86/kernel/kvmclock.c | 2 +- arch/x86/kernel/paravirt-spinlocks.c | 9 + arch/x86/kernel/paravirt.c | 75 +-- arch/x86/kernel/paravirt_patch.c | 99 ---- arch/x86/kernel/setup.c | 1 - arch/x86/kernel/setup_percpu.c | 1 - arch/x86/kernel/sev-es.c | 63 ++- arch/x86/kernel/smpboot.c | 90 ++-- arch/x86/kernel/static_call.c | 4 +- arch/x86/kernel/tls.c | 8 +- arch/x86/kernel/traps.c | 10 +- arch/x86/kernel/tsc.c | 3 +- arch/x86/kernel/umip.c | 2 +- arch/x86/kernel/uprobes.c | 8 +- arch/x86/lib/atomic64_386_32.S | 2 +- arch/x86/lib/atomic64_cx8_32.S | 2 +- arch/x86/lib/copy_page_64.S | 2 +- arch/x86/lib/copy_user_64.S | 2 +- arch/x86/lib/inat.c | 2 +- arch/x86/lib/insn-eval.c | 44 +- arch/x86/lib/insn.c | 230 ++++++-- arch/x86/lib/memcpy_64.S | 2 +- arch/x86/lib/memmove_64.S | 2 +- arch/x86/lib/memset_64.S | 2 +- arch/x86/lib/retpoline.S | 67 ++- arch/x86/mm/mem_encrypt.c | 6 + arch/x86/net/bpf_jit_comp.c | 10 +- arch/x86/platform/pvh/head.S | 14 - arch/x86/power/cpu.c | 6 +- arch/x86/tools/insn_decoder_test.c | 10 +- arch/x86/tools/insn_sanity.c | 8 +- arch/x86/xen/enlighten_pv.c | 5 +- arch/x86/xen/time.c | 26 +- drivers/xen/time.c | 3 +- include/linux/static_call.h | 26 +- include/linux/static_call_types.h | 18 + scripts/gcc-x86_32-has-stack-protector.sh | 6 +- tools/arch/x86/include/asm/inat.h | 2 +- tools/arch/x86/include/asm/insn.h | 46 +- tools/arch/x86/include/asm/nops.h | 81 +++ tools/arch/x86/lib/inat.c | 2 +- tools/arch/x86/lib/insn.c | 230 ++++++-- tools/include/linux/kconfig.h | 73 +++ tools/include/linux/static_call_types.h | 18 + tools/objtool/arch/x86/decode.c | 144 ++++- tools/objtool/arch/x86/include/arch/special.h | 2 +- tools/objtool/check.c | 183 ++++--- tools/objtool/elf.c | 289 +++++++--- tools/objtool/include/objtool/arch.h | 4 + tools/objtool/include/objtool/check.h | 3 +- tools/objtool/include/objtool/elf.h | 13 +- tools/objtool/include/objtool/objtool.h | 1 + tools/objtool/objtool.c | 1 + tools/objtool/orc_gen.c | 33 +- tools/objtool/special.c | 12 +- tools/objtool/sync-check.sh | 18 +- tools/perf/arch/x86/tests/insn-x86.c | 9 +- tools/perf/arch/x86/util/archinsn.c | 9 +- tools/perf/check-headers.sh | 15 +- .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 17 +- 113 files changed, 2399 insertions(+), 2062 deletions(-) delete mode 100644 arch/x86/include/asm/alternative-asm.h delete mode 100644 arch/x86/kernel/paravirt_patch.c create mode 100644 tools/arch/x86/include/asm/nops.h create mode 100644 tools/include/linux/kconfig.h
-- Regards/Gruss, Boris.
SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg
| |