On Wed, Mar 23, 2022 at 12:30 PM Charlemagne Lasse <charlemagnelasse@xxxxxxxxx> wrote: > > > @@ -75,9 +77,9 @@ do { \ > > */ > > #define __WARN_FLAGS(flags) \ > > do { \ > > + __auto_type f = BUGFLAG_WARNING|(flags); \ > > instrumentation_begin(); \ > > - _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags)); \ > > - annotate_reachable(); \ > > + _BUG_FLAGS(ASM_UD2, f, ASM_REACHABLE); \ > > instrumentation_end(); \ > > } while (0) > > This causes following sparse warning on x86: > > make allnoconfig && touch init/version.c && make CHECK="sparse > -Wshadow" C=1 init/version.o > # > # No change to .config > # > CALL scripts/checksyscalls.sh > CALL scripts/atomic/check-atomics.sh > CHK include/generated/compile.h > CC init/version.o > CHECK init/version.c > init/version.c: note: in included file (through > include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, > include/linux/utsname.h): > ./include/linux/rcupdate.h:1007:9: warning: symbol 'f' shadows an earlier one > ./include/linux/rcupdate.h:1001:47: originally declared here Thanks for the report. There was already a fix sent for this: https://lore.kernel.org/lkml/20220317065743.8467-1-mailhol.vincent@xxxxxxxxxx/ but it doesn't mention that sparse is warning about this, too. I think if Vincent sent a v3 that mentioned that sparse is warning about this, too, and cc'ed you, you could then supply signed-off/tested-by tags (or just do so on v2, though it doesn't mention sparse), and maybe Josh would be so kind as to pick that up? > > > Affected versions (from the ones on kernel.org): > > * 5.17 - bfb1a7c91fb7 ("x86/bug: Merge annotate_reachable() into > _BUG_FLAGS() asm") > * 5.16.17 - fe0c95903a68 ("x86/bug: Merge annotate_reachable() into > _BUG_FLAGS() asm") > > Cannot be seen when changing the variable name: > > diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h > index bab883c0b6fe..cbd11e38252a 100644 > --- a/arch/x86/include/asm/bug.h > +++ b/arch/x86/include/asm/bug.h > @@ -77,9 +77,9 @@ do { \ > */ > #define __WARN_FLAGS(flags) \ > do { \ > - __auto_type f = BUGFLAG_WARNING|(flags); \ > + __auto_type __f = BUGFLAG_WARNING|(flags); \ > instrumentation_begin(); \ > - _BUG_FLAGS(ASM_UD2, f, ASM_REACHABLE); \ > + _BUG_FLAGS(ASM_UD2, __f, ASM_REACHABLE); \ > instrumentation_end(); \ > } while (0) -- Thanks, ~Nick Desaulniers