Messages in this thread | ![/](/images/icornerl.gif) | | From | Nick Desaulniers <> | Date | Mon, 15 Jul 2019 14:45:39 -0700 | Subject | Re: [PATCH 00/22] x86, objtool: several fixes/improvements |
| |
On Mon, Jul 15, 2019 at 12:38 PM Josh Poimboeuf <jpoimboe@redhat.com> wrote: > > On Sun, Jul 14, 2019 at 07:36:55PM -0500, Josh Poimboeuf wrote: > > 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
For a defconfig, that's the only issue I see. (Note that I just landed https://reviews.llvm.org/rL366130 for fixing up bugs from loop unrolling loops containing asm goto with Clang, so anyone else testing w/ clang will see fewer objtool warnings with that patch applied. A follow up is being worked on in https://reviews.llvm.org/D64101).
For allmodconfig: arch/x86/ia32/ia32_signal.o: warning: objtool: ia32_setup_rt_frame()+0x247: call to memset() with UACCESS enabled mm/kasan/common.o: warning: objtool: kasan_report()+0x52: call to __stack_chk_fail() with UACCESS enabled arch/x86/kernel/signal.o: warning: objtool: x32_setup_rt_frame()+0x255: call to memset() with UACCESS enabled arch/x86/kernel/signal.o: warning: objtool: __setup_rt_frame()+0x254: call to memset() with UACCESS enabled drivers/ata/sata_dwc_460ex.o: warning: objtool: sata_dwc_bmdma_start_by_tag()+0x3a0: can't find switch jump table lib/ubsan.o: warning: objtool: __ubsan_handle_type_mismatch()+0x88: call to memset() with UACCESS enabled lib/ubsan.o: warning: objtool: ubsan_type_mismatch_common()+0x610: call to __stack_chk_fail() with UACCESS enabled lib/ubsan.o: warning: objtool: __ubsan_handle_type_mismatch_v1()+0x88: call to memset() with UACCESS enabled drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: warning: objtool: .altinstr_replacement+0x56: redundant UACCESS disable
Without your series, I see them anyways, so I don't consider them regressions added by this series. Let's follow up on these maybe in a new thread? (Shall I send you these object files?)
So for the series: Tested-by: Nick Desaulniers <ndesaulniers@google.com>
> > > > 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.
Thanks for the report, let's follow up on steps for me to reproduce.
> > These patches are also at: > > git://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git objtool-many-fixes
Are these the same patches? Some of the commit messages look different, like: https://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git/commit/?h=objtool-many-fixes&id=3e39561c52c4f0062207d604c972148b7b60c341
-- Thanks, ~Nick Desaulniers
| ![\](/images/icornerr.gif) |