Messages in this thread Patch in this message | | | From | Souptick Joarder <> | Subject | [PATCH] mm/khugepaged: Avoid possible memory leak in failure path | Date | Wed, 13 Jul 2022 08:11:09 +0530 |
| |
From: "Souptick Joarder (HPE)" <jrdr.linux@gmail.com>
smatch warnings: mm/khugepaged.c:2409 madvise_collapse() warn: possible memory leak of 'cc'
Avoiding possible memory leak.
Reported-by: kernel test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Souptick Joarder (HPE) <jrdr.linux@gmail.com> --- 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
| |