Messages in this thread Patch in this message | | | From | Charlemagne Lasse <> | Date | Wed, 23 Mar 2022 20:30:22 +0100 | Subject | Re: [PATCH] x86: bug.h: merge annotate_reachable into _BUG_FLAGS for __WARN_FLAGS |
| |
> @@ -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
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)
| |