Re: linux-next: build warning after merge of the pstore tree

From: Kees Cook
Date: Tue Nov 15 2016 - 19:35:41 EST


On Tue, Nov 15, 2016 at 4:27 PM, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> Hi Kees,
>
> After merging the pstore tree, today's linux-next build (x86_64
> allmodconfig) produced this warning:
>
> In file included from include/linux/rcupdate.h:38:0,
> from include/linux/idr.h:18,
> from include/linux/kernfs.h:14,
> from include/linux/sysfs.h:15,
> from include/linux/kobject.h:21,
> from include/linux/device.h:17,
> from fs/pstore/ram_core.c:17:
> fs/pstore/ram_core.c: In function 'buffer_size_add':
> include/linux/spinlock.h:246:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
> _raw_spin_unlock_irqrestore(lock, flags); \
> ^
> fs/pstore/ram_core.c:78:16: note: 'flags' was declared here
> unsigned long flags;
> ^
> In file included from include/linux/rcupdate.h:38:0,
> from include/linux/idr.h:18,
> from include/linux/kernfs.h:14,
> from include/linux/sysfs.h:15,
> from include/linux/kobject.h:21,
> from include/linux/device.h:17,
> from fs/pstore/ram_core.c:17:
> fs/pstore/ram_core.c: In function 'buffer_start_add':
> include/linux/spinlock.h:246:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
> _raw_spin_unlock_irqrestore(lock, flags); \
> ^
> fs/pstore/ram_core.c:56:16: note: 'flags' was declared here
> unsigned long flags;
> ^
>
> Introduced by commit
>
> 95937ddce59a ("pstore: Allow prz to control need for locking")
>
> They appear to be a very noisy false positives. :-(

Hah. Ironically, I ran sparse against this code to make sure it would
be happy with the conditional locking, and totally missed the flags
bit. I'll switch it to explicitly initialize flags to silence this.

Thanks!

-Kees

--
Kees Cook
Nexus Security