Re: [PATCH-next] mm/memcontrol.c: Fix potential uninitialized variable warning
From: Waiman Long <hidden>
Date: 2021-05-26 22:29:09
Also in:
cgroups, lkml
From: Waiman Long <hidden>
Date: 2021-05-26 22:29:09
Also in:
cgroups, lkml
On 5/26/21 4:43 PM, Andrew Morton wrote:
On Wed, 26 May 2021 15:36:02 -0400 Waiman Long [off-list ref] wrote:quoted
If the -Wno-maybe-uninitialized gcc option is not specified, compilation of memcontrol.c may generate the following warnings: mm/memcontrol.c: In function ‘refill_obj_stock’: ./arch/x86/include/asm/irqflags.h:127:17: warning: ‘flags’ may be used uninitialized in this function [-Wmaybe-uninitialized] return !(flags & X86_EFLAGS_IF); ~~~~~~~^~~~~~~~~~~~~~~~ mm/memcontrol.c:3216:16: note: ‘flags’ was declared here unsigned long flags; ^~~~~ In file included from mm/memcontrol.c:29: mm/memcontrol.c: In function ‘uncharge_page’: ./include/linux/memcontrol.h:797:2: warning: ‘objcg’ may be used uninitialized in this function [-Wmaybe-uninitialized] percpu_ref_put(&objcg->refcnt); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fix that by properly initializing *pflags in get_obj_stock() and introducing a use_objcg bool variable in uncharge_page() to avoid potentially accessing the struct page data twice.Thanks. I'll queue this as a fix against your "mm/memcg: optimize user context object stock access".
Thanks for that. Cheers, Longman