[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200601153114.GA994053@gmail.com>
Date: Mon, 1 Jun 2020 17:31:14 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Borislav Petkov <bp@...en8.de>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: [GIT PULL] objtool changes for v5.8
Linus,
Please pull the latest objtool/core git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git objtool-core-2020-06-01
# HEAD: 0decf1f8de919782b152daf9c991967a2bac54f0 objtool: Enable compilation of objtool for all architectures
There are a lot of objtool changes in this cycle, all across the map:
- Speed up objtool significantly, especially when there are large number of sections
- Improve objtool's understanding of special instructions such as IRET,
to reduce the number of annotations required
- Implement 'noinstr' validation
- Do baby steps for non-x86 objtool use
- Simplify/fix retpoline decoding
- Add vmlinux validation
- Improve documentation
- Fix various bugs and apply smaller cleanups
Thanks,
Ingo
------------------>
Alexandre Chartre (4):
objtool: Uniquely identify alternative instruction groups
objtool: is_fentry_call() crashes if call has no destination
objtool: UNWIND_HINT_RET_OFFSET should not check registers
objtool: Add support for intra-function calls
Ingo Molnar (3):
objtool: Constify 'struct elf *' parameters
objtool: Rename elf_read() to elf_open_read()
objtool: Constify arch_decode_instruction()
Josh Poimboeuf (2):
samples/ftrace: Fix asm function ELF annotations
objtool: Add check_kcov_mode() to the uaccess safelist
Julien Thierry (9):
objtool: Fix off-by-one in symbol_by_offset()
objtool: Always do header sync check
objtool: Remove redundant checks on operand type
objtool: Clean instruction state before each function validation
objtool: Ignore empty alternatives
objtool: Use arch specific values in restore_reg()
objtool: Split out arch-specific CFI definitions
objtool: Support multiple stack_op per instruction
objtool: Remove check preventing branches within alternative
Matt Helsley (3):
objtool: Exit successfully when requesting help
objtool: Move struct objtool_file into arch-independent header
objtool: Enable compilation of objtool for all architectures
Miroslav Benes (1):
objtool: Move the IRET hack into the arch decoder
Muchun Song (1):
objtool: Remove redundant .rodata section name comparison
Nick Desaulniers (1):
objtool: Documentation: document UACCESS warnings
Peter Zijlstra (26):
objtool: Fix 32bit cross builds
objtool: Better handle IRET
objtool: Introduce HINT_RET_OFFSET
x86,ftrace: Fix ftrace_regs_caller() unwind
x86,ftrace: Use SIZEOF_PTREGS
x86,ftrace: Shrink ftrace_regs_caller() by one byte
objtool: Remove SAVE/RESTORE hints
objtool: Rename struct cfi_state
objtool: Fix !CFI insn_state propagation
objtool: Implement noinstr validation
objtool: Optimize !vmlinux.o again
objtool: Use sec_offset_hash() for insn_hash
kbuild/objtool: Add objtool-vmlinux.o pass
objtool: Avoid iterating !text section symbols
objtool: Rearrange validate_section()
objtool: Add STT_NOTYPE noinstr validation
objtool: Fix ORC vs alternatives
x86,smap: Fix smap_{save,restore}() alternatives
objtool: Rework allocating stack_ops on decode
objtool: Make handle_insn_ops() unconditional
objtool: Remove INSN_STACK
x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
x86: Simplify retpoline declaration
x86: Change {JMP,CALL}_NOSPEC argument
x86/retpoline: Fix retpoline unwind
objtool: Allow no-op CFI ops in alternatives
Raphael Gault (1):
objtool: Add abstraction for destination offsets
Sami Tolvanen (2):
objtool: use gelf_getsymshndx to handle >64k sections
objtool: optimize add_dead_ends for split sections
Thomas Gleixner (1):
objtool: Also consider .entry.text as noinstr
arch/x86/crypto/aesni-intel_asm.S | 4 +-
arch/x86/crypto/camellia-aesni-avx-asm_64.S | 2 +-
arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 2 +-
arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 26 +-
arch/x86/entry/entry_32.S | 6 +-
arch/x86/entry/entry_64.S | 2 +-
arch/x86/include/asm/GEN-for-each-reg.h | 25 +
arch/x86/include/asm/asm-prototypes.h | 35 +-
arch/x86/include/asm/nospec-branch.h | 76 +--
arch/x86/include/asm/orc_types.h | 3 +-
arch/x86/include/asm/processor.h | 2 -
arch/x86/include/asm/smap.h | 11 +-
arch/x86/include/asm/unwind_hints.h | 31 +-
arch/x86/kernel/ftrace.c | 14 +-
arch/x86/kernel/ftrace_32.S | 2 +-
arch/x86/kernel/ftrace_64.S | 44 +-
arch/x86/lib/checksum_32.S | 4 +-
arch/x86/lib/retpoline.S | 63 +-
arch/x86/platform/efi/efi_stub_64.S | 2 +-
include/linux/frame.h | 11 +
lib/Kconfig.debug | 5 +
samples/ftrace/ftrace-direct-modify.c | 4 +
samples/ftrace/ftrace-direct-too.c | 2 +
samples/ftrace/ftrace-direct.c | 2 +
scripts/link-vmlinux.sh | 24 +
tools/arch/x86/include/asm/orc_types.h | 3 +-
tools/objtool/Build | 13 +-
tools/objtool/Documentation/stack-validation.txt | 41 ++
tools/objtool/Makefile | 15 +-
tools/objtool/arch.h | 19 +-
tools/objtool/arch/x86/decode.c | 302 +++++----
tools/objtool/arch/x86/include/cfi_regs.h | 25 +
tools/objtool/builtin-check.c | 13 +-
tools/objtool/builtin-orc.c | 3 +-
tools/objtool/builtin.h | 2 +-
tools/objtool/cfi.h | 35 +-
tools/objtool/check.c | 801 +++++++++++++++--------
tools/objtool/check.h | 35 +-
tools/objtool/elf.c | 102 ++-
tools/objtool/elf.h | 37 +-
tools/objtool/objtool.c | 4 +-
tools/objtool/objtool.h | 27 +
tools/objtool/orc.h | 18 -
tools/objtool/orc_dump.c | 3 +-
tools/objtool/orc_gen.c | 12 +-
tools/objtool/weak.c | 40 ++
46 files changed, 1228 insertions(+), 724 deletions(-)
create mode 100644 arch/x86/include/asm/GEN-for-each-reg.h
create mode 100644 tools/objtool/arch/x86/include/cfi_regs.h
create mode 100644 tools/objtool/objtool.h
delete mode 100644 tools/objtool/orc.h
create mode 100644 tools/objtool/weak.c
Powered by blists - more mailing lists