On Mon 24-10-16 17:25:03, Arnd Bergmann wrote: > After enabling -Wmaybe-uninitialized warnings, we get a false-postive > warning for shmem: > > mm/shmem.c: In function ‘shmem_getpage_gfp’: > include/linux/spinlock.h:332:21: error: ‘info’ may be used uninitialized in this function [-Werror=maybe-uninitialized] Is this really a false positive? If we goto clear and then if (sgp <= SGP_CACHE && ((loff_t)index << PAGE_SHIFT) >= i_size_read(inode)) { if (alloced) { we could really take a spinlock on an unitialized variable. But maybe there is something that prevents from that... Anyway the whole shmem_getpage_gfp is really hard to follow due to gotos and labels proliferation. > This can be easily avoided, since the correct 'info' pointer is known > at the time we first enter the function, so we can simply move the > initialization up. Moving it before the first label avoids the > warning. > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Looks good to me. Acked-by: Michal Hocko <mhocko@xxxxxxxx> > --- > mm/shmem.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/mm/shmem.c b/mm/shmem.c > index ad7813d73ea7..69e6777096a3 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1537,7 +1537,7 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index, > struct mm_struct *fault_mm, int *fault_type) > { > struct address_space *mapping = inode->i_mapping; > - struct shmem_inode_info *info; > + struct shmem_inode_info *info = SHMEM_I(inode); > struct shmem_sb_info *sbinfo; > struct mm_struct *charge_mm; > struct mem_cgroup *memcg; > @@ -1587,7 +1587,6 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index, > * Fast cache lookup did not find it: > * bring it back from swap or allocate. > */ > - info = SHMEM_I(inode); > sbinfo = SHMEM_SB(inode->i_sb); > charge_mm = fault_mm ? : current->mm; > > -- > 2.9.0 > -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>