Messages in this thread | | | Date | Wed, 3 Apr 2019 13:44:02 +0100 | From | Will Deacon <> | Subject | Re: [PATCH] lockdep: avoid bogus clang warning |
| |
On Mon, Mar 25, 2019 at 01:57:57PM +0100, Arnd Bergmann wrote: > When lockdep is enabled, and -Wuninitialized warnings are enabled, > clang produces a silly warning for every file we compile: > > In file included from kernel/sched/fair.c:23: > kernel/sched/sched.h:1094:15: error: variable 'cookie' is uninitialized when used here [-Werror,-Wuninitialized] > rf->cookie = lockdep_pin_lock(&rq->lock); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > include/linux/lockdep.h:474:60: note: expanded from macro 'lockdep_pin_lock' > #define lockdep_pin_lock(l) ({ struct pin_cookie cookie; cookie; }) > ^~~~~~ > kernel/sched/sched.h:1094:15: note: variable 'cookie' is declared here > include/linux/lockdep.h:474:34: note: expanded from macro 'lockdep_pin_lock' > #define lockdep_pin_lock(l) ({ struct pin_cookie cookie; cookie; }) > ^ > As the 'struct pin_cookie' structure is empty in this configuration, > there is no need to initialize it for correctness, but it also > does not hurt to set it to an empty structure, so do that to > avoid the warning. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > include/linux/lockdep.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h > index 79c3873d58ac..31d7549933eb 100644 > --- a/include/linux/lockdep.h > +++ b/include/linux/lockdep.h > @@ -471,7 +471,7 @@ struct pin_cookie { }; > > #define NIL_COOKIE (struct pin_cookie){ } > > -#define lockdep_pin_lock(l) ({ struct pin_cookie cookie; cookie; }) > +#define lockdep_pin_lock(l) ({ struct pin_cookie cookie = {}; cookie; }) > #define lockdep_repin_lock(l, c) do { (void)(l); (void)(c); } while (0) > #define lockdep_unpin_lock(l, c) do { (void)(l); (void)(c); } while (0)
Acked-by: Will Deacon <will.deacon@arm.com>
Will
| |