On Wed, Jul 24, 2019 at 06:48:21PM +0200, Peter Zijlstra wrote: > On Wed, Jul 24, 2019 at 04:10:40PM +0200, Peter Zijlstra wrote: > > And that most certainly should trigger... > > > > Let me gdb that objtool thing. > > --- > Subject: objtool: Improve UACCESS coverage > > A clang build reported an (obvious) double CLAC while a GCC build did > not; it turns out we only re-visit instructions if the first visit was > with AC=0. If OTOH the first visit was with AC=1, we completely ignore > any subsequent visit, even when it has AC=0. > > Fix this by using a visited mask, instead of boolean and (explicitly) > mark the AC state. > > $ ./objtool check -b --no-fp --retpoline --uaccess > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: .altinstr_replacement+0x22: redundant UACCESS disable > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: eb_copy_relocations.isra.34()+0xea: (alt) > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: .altinstr_replacement+0xffffffffffffffff: (branch) > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: eb_copy_relocations.isra.34()+0xd9: (alt) > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: eb_copy_relocations.isra.34()+0xb2: (branch) > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: eb_copy_relocations.isra.34()+0x39: (branch) > ../../defconfig-build/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o: > warning: objtool: eb_copy_relocations.isra.34()+0x0: <=== (func) > > Reported-by: Josh Poimboeuf <[email protected]> > Reported-by: Thomas Gleixner <[email protected]> > Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
This doesn't regress clang and I see the warning on GCC now too. Tested-by: Nathan Chancellor <[email protected]>

