[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1563413318.git.jpoimboe@redhat.com>
Date: Wed, 17 Jul 2019 20:36:35 -0500
From: Josh Poimboeuf <jpoimboe@...hat.com>
To: x86@...nel.org
Cc: linux-kernel@...r.kernel.org,
Peter Zijlstra <peterz@...radead.org>,
Thomas Gleixner <tglx@...utronix.de>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Arnd Bergmann <arnd@...db.de>, Jann Horn <jannh@...gle.com>,
Randy Dunlap <rdunlap@...radead.org>
Subject: [PATCH v2 00/22] x86, objtool: several fixes/improvements
v2:
- Use ud2 instead of calling kvm_spurious_fault() in vmx_vmenter() [Paolo]
- Fix ____kvm_handle_fault_on_reboot() comment [Paolo]
- Tweak "switch jump table" comment [Peter]
- Add review tags
Patches also available at:
git://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git objtool-many-fixes-v2
v1 was posted here:
https://lkml.kernel.org/r/cover.1563150885.git.jpoimboe@redhat.com
-------------------
There have been a lot of objtool bug reports lately, mainly related to
Clang and BPF. As part of fixing those bugs, I added some improvements
to objtool which uncovered yet more bugs (some kernel, some objtool).
I've given these patches a lot of testing with both GCC and Clang. More
compile testing of objtool would be appreciated, as the kbuild test
robot doesn't seem to be paying much attention to my branches lately.
There are still at least three outstanding issues:
1) With clang I see:
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: warning: objtool: .altinstr_replacement+0x88: redundant UACCESS disable
I haven't dug into it yet.
2) There's also an issue in clang where a large switch table had a bunch
of unused (bad) entries. It's not a code correctness issue, but
hopefully it can get fixed in clang anyway. See patch 20/22 for more
details.
3) CONFIG_LIVEPATCH is causing some objtool "unreachable instruction"
warnings due to the new -flive-patching flag. I have some fixes
pending, but this patch set is already long enough.
Jann Horn (1):
objtool: Support repeated uses of the same C jump table
Josh Poimboeuf (21):
x86/paravirt: Fix callee-saved function ELF sizes
x86/kvm: Fix fastop function ELF metadata
x86/kvm: Replace vmx_vmenter()'s call to kvm_spurious_fault() with UD2
x86/kvm: Don't call kvm_spurious_fault() from .fixup
x86/entry: Fix thunk function ELF sizes
x86/head/64: Annotate start_cpu0() as non-callable
x86/uaccess: Remove ELF function annotation from
copy_user_handle_tail()
x86/uaccess: Don't leak AC flag into fentry from mcsafe_handle_tail()
x86/uaccess: Remove redundant CLACs in getuser/putuser error paths
bpf: Disable GCC -fgcse optimization for ___bpf_prog_run()
objtool: Add mcsafe_handle_tail() to the uaccess safe list
objtool: Track original function across branches
objtool: Refactor function alias logic
objtool: Warn on zero-length functions
objtool: Change dead_end_function() to return boolean
objtool: Do frame pointer check before dead end check
objtool: Refactor sibling call detection logic
objtool: Refactor jump table code
objtool: Fix seg fault on bad switch table entry
objtool: convert insn type to enum
objtool: Support conditional retpolines
arch/x86/entry/thunk_64.S | 5 +-
arch/x86/include/asm/kvm_host.h | 34 ++--
arch/x86/include/asm/paravirt.h | 1 +
arch/x86/kernel/head_64.S | 4 +-
arch/x86/kernel/kvm.c | 1 +
arch/x86/kvm/emulate.c | 44 +++--
arch/x86/kvm/vmx/vmenter.S | 6 +-
arch/x86/lib/copy_user_64.S | 2 +-
arch/x86/lib/getuser.S | 20 +--
arch/x86/lib/putuser.S | 29 +--
arch/x86/lib/usercopy_64.c | 2 +-
include/linux/compiler-gcc.h | 2 +
include/linux/compiler_types.h | 4 +
kernel/bpf/core.c | 2 +-
tools/objtool/arch.h | 36 ++--
tools/objtool/arch/x86/decode.c | 2 +-
tools/objtool/check.c | 308 ++++++++++++++++----------------
tools/objtool/check.h | 3 +-
tools/objtool/elf.c | 4 +-
tools/objtool/elf.h | 3 +-
20 files changed, 278 insertions(+), 234 deletions(-)
--
2.20.1
Powered by blists - more mailing lists