On Jul 13 08:11, Souptick Joarder wrote: > From: "Souptick Joarder (HPE)" <jrdr.linux@xxxxxxxxx> > > smatch warnings: > mm/khugepaged.c:2409 madvise_collapse() warn: possible memory > leak of 'cc' > > Avoiding possible memory leak. > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Signed-off-by: Souptick Joarder (HPE) <jrdr.linux@xxxxxxxxx> > --- > mm/khugepaged.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index 0207fc0a5b2a..8da9e7467543 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -2397,12 +2397,6 @@ int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, > BUG_ON(vma->vm_start > start); > BUG_ON(vma->vm_end < end); > > - cc = kmalloc(sizeof(*cc), GFP_KERNEL); > - if (!cc) > - return -ENOMEM; > - cc->is_khugepaged = false; > - cc->last_target_node = NUMA_NO_NODE; > - > *prev = vma; > > /* TODO: Support file/shmem */ > @@ -2415,6 +2409,12 @@ int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, > if (!hugepage_vma_check(vma, vma->vm_flags, false, false, false)) > return -EINVAL; > > + cc = kmalloc(sizeof(*cc), GFP_KERNEL); > + if (!cc) > + return -ENOMEM; > + cc->is_khugepaged = false; > + cc->last_target_node = NUMA_NO_NODE; > + > mmgrab(mm); > lru_add_drain_all(); > > -- > 2.25.1 > > Thanks for the fix! I've also sent out another patch on top which addresses the actual missing kfree()