From patchwork Wed Mar 12 07:56:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rakie Kim X-Patchwork-Id: 14013062 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE130C28B28 for ; Wed, 12 Mar 2025 07:56:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7E75C280002; Wed, 12 Mar 2025 03:56:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 76BE4280001; Wed, 12 Mar 2025 03:56:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 60F29280002; Wed, 12 Mar 2025 03:56:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 41C93280001 for ; Wed, 12 Mar 2025 03:56:40 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 4169955FD3 for ; Wed, 12 Mar 2025 07:56:42 +0000 (UTC) X-FDA: 83212142244.29.69A1786 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf05.hostedemail.com (Postfix) with ESMTP id BE73810000F for ; Wed, 12 Mar 2025 07:56:39 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf05.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741766200; a=rsa-sha256; cv=none; b=VtyQxB3WjYOCmwr1qr9ol8GlaVVGhGTw4fU0vsdX7fA8643Q9iy2G447Zxozljvx975r/l nR4h4uaM/VDB5ejBWEWntW/K/wgf2YTUT79yuUFH6fMC3HCSLJ59JA9wfu1BVO8JT4j/xe kPA5vu9qbFPwzu1/YswvN1dB2O/4Tlg= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf05.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741766200; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=5n2ooCqYEl5Wx8nfQJwAJM8Fl3IW8SGM6UYh6koa7Ok=; b=HZ0aAFXxMeMgaKzkQ3B/TDm8ab2E/4R93EH6lASGIEZet9m5Lg+KHuq/Ohxm51/kkreUr1 qTREf279uTJm/sHiPDGFSZ/gfxRbsSUoVAeH6NGwL2DPWVHW9sUd5pRPWdZrc/nkd6GR6a iLsFAlE6Up3pYubt92qXH3LBBKJUxUg= X-AuditID: a67dfc5b-669ff7000002311f-02-67d13e357e71 From: Rakie Kim To: gourry@gourry.net Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, joshua.hahnjy@gmail.com, dan.j.williams@intel.com, ying.huang@linux.alibaba.com, kernel_team@skhynix.com, honggyu.kim@sk.com, yunjeong.mun@sk.com, rakie.kim@sk.com Subject: [PATCH v2 1/4] mm/mempolicy: Fix memory leaks in mempolicy_sysfs_init() Date: Wed, 12 Mar 2025 16:56:24 +0900 Message-ID: <20250312075628.648-1-rakie.kim@sk.com> X-Mailer: git-send-email 2.48.1.windows.1 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKLMWRmVeSWpSXmKPExsXC9ZZnka6p3cV0g9U9whZz1q9hs5g+9QKj xc+7x9ktjm+dx25xftYpFovLu+awWdxb85/VYvWaDAcOj52z7rJ7dLddZvdYvOclk8emT5PY PU7M+M3isfOhpcfnTXIB7FFcNimpOZllqUX6dglcGXfftTAWdAlUrD3/kKWBsZO3i5GTQ0LA ROLFtE5WGHva/g0sXYwcHGwCShLH9saAhEUERCXmHZ0NFObiYBZYzCSx8PB6JpCEsECAxPpj c9hBbBYBVYlbnY1gc3gFjCVmb5oGNVNTouHSPSaIuKDEyZlPWEBsZgF5ieats5lBhkoIbGCT aHp/gQmiQVLi4IobLBMYeWch6ZmFpGcBI9MqRqHMvLLcxMwcE72MyrzMCr3k/NxNjMDAXFb7 J3oH46cLwYcYBTgYlXh4BXIupAuxJpYVV+YeYpTgYFYS4V1tCxTiTUmsrEotyo8vKs1JLT7E KM3BoiTOa/StPEVIID2xJDU7NbUgtQgmy8TBKdXAGL90z40VmxN38xQvPfuX6dG2H0kvlH4e 4j9x86+NynXuicmGB9y57Is1ntr5lYo57m6I7Qq3L2/0lllwbdeGevZdzefbHhjEb0q9deK0 PvsHgwNfuhvTvB48PhZ8dl758XsRfdf7tFNyPZvKvURXXPsrcMvxlIW7Azfnf+sID7U5uxg+ sprfV2Ipzkg01GIuKk4EAN4JA+VIAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPLMWRmVeSWpSXmKPExsXCNUNNS9fU7mK6waVnLBZz1q9hs5g+9QKj xc+7x9ktPj97zWxxfOs8dovDc0+yWpyfdYrF4vKuOWwW99b8Z7U4dO05q8XqNRkWv7etYHPg 8dg56y67R3fbZXaPxXteMnls+jSJ3ePEjN8sHjsfWnp8u+3hsfjFByaPz5vkAjijuGxSUnMy y1KL9O0SuDLuvmthLOgSqFh7/iFLA2MnbxcjJ4eEgInEtP0bWLoYOTjYBJQkju2NAQmLCIhK zDs6GyjMxcEssJhJYuHh9UwgCWGBAIn1x+awg9gsAqoStzobWUFsXgFjidmbprFCzNSUaLh0 jwkiLihxcuYTFhCbWUBeonnrbOYJjFyzkKRmIUktYGRaxSiSmVeWm5iZY6pXnJ1RmZdZoZec n7uJERiMy2r/TNzB+OWy+yFGAQ5GJR7eA6oX0oVYE8uKK3MPMUpwMCuJ8K62BQrxpiRWVqUW 5ccXleakFh9ilOZgURLn9QpPTRASSE8sSc1OTS1ILYLJMnFwSjUwbtFMz9984bPo7zipBRkX e+pEwkICP/92f7Hu5OubZhl9X4wfyWu/PB0wOfK/0cSbCarFsxUi5ZjfcGdZ+n5NWa89Q9ii i9Py75y3TIWra07etWI3VdArSNbolmeIzTIW5WGLMJz0o1a6s9NMLvbvKjextQ+E7Rfsmr/e eE1HzH6Nk1PYe4WVWIozEg21mIuKEwEOm2ZYQgIAAA== X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Queue-Id: BE73810000F X-Rspamd-Server: rspam05 X-Stat-Signature: necbja9frqiekmezjbr7qwe11y4uj6qs X-HE-Tag: 1741766199-695066 X-HE-Meta: U2FsdGVkX19zKB9G5WCBLMmVqjfZXBU+DmmNA1KSJzhMLoAoCwHwKRLfI+PEGcnlRuNlbW6G69dcpL80pngii5O94jfiTN8Djt1mrpNXRdDBQ7JxHPO44zHCyBlkvXCH6ADKUJLxUBcb41Yq2Y/BTkAcbcnWvgexutjXlis1t1dBJQVL6iojfp3GKljUQjF+wUCauTrVkg920qVx333zzEGPBSk5jDrtbF2MlBa8bvdI6kYBnjkUt+y3GxOFGQR/B867UOeOj6tjHskVijEN+VL15LCCTywMceZhdqDMGMzDyG8REQy/gX4zj7LECbJOcr+7de+UCp257TSHfL7Yg7etX3QCVGsAXfPEHUu/Ve7YdtZIbx3Hwrpz1kK/1my1YH2rqTBDsKez54F0fOJwRzAYKOS0brDTYM6FFtIuFZtgZz/ObUDGg8F0EwbbdeJKYVEs6R+e3AmGi+AXUCptLOynA6P4uAdOg92OQTnA/RlpbWxkhF9zgYyENU0zWL86sXd67bNqptfcgPOPbktxm2gH56A3Q425QGmRDiPAFS++qgzrpkDA7ki9DtV82TeSceEZyLObcfIfXm5G/PWTpObp7XUMGw5bPQ7P8ECvtZ8mjaJwslENya3lZI+hHpRDgBOov+8qXZdK4x2DOg46tLdoVlM2gg33q0HhxIgB4szii3umfgGN5iZJiNJFlmvajNAGXegZAkmeOeoUhOJZbTIfVzN3E7bjhcx14u1wzNAcr+tBY9pXFSxJFEK1vMqnC24bQPFdUr4T9s2wzhPzYTPGCUGU2uzGXtsXrApV42m4hi0jAfKIe8btgYQJiNILZHjSt39m3FPBD0PNyYoHCNRJQuncmuN0bSGOhouWJoaOx4kjrLw8CH+Q52d+trv7Ie6MNsZLW6J4ROWE7kG0a6UlZ5Xx9dZUgeCw+856CpIOSCOj5XEs9jMOk+hDDFiR7bJnFjYIXW+6IO/RLLs ZsMkuEBY 6dLDCNJ5MHu6lsqbs0pqnrzWmofogdjT7f7adZV9QYH+YR7p1QfqDU06Q5nHSGt20XQz1tK0y1w5WuemcJ2nN1SWR7+Ngnb5LHUEeNYbsTSKmZG8wG1rkkxsExMuogzZvDpXqyRNKukJAhkn1sB5Zy2YEDA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Improper cleanup of sysfs attributes caused kobject and memory leaks when initialization failed or nodes were removed. This patch ensures proper deallocation of kobjects and memory, preventing resource leaks and improving stability. Fixes: dce41f5ae253 ("mm/mempolicy: implement the sysfs-based weighted_interleave interface") Signed-off-by: Rakie Kim --- mm/mempolicy.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) base-commit: 80e54e84911a923c40d7bee33a34c1b4be148d7a diff --git a/mm/mempolicy.c b/mm/mempolicy.c index bbaadbeeb291..1691748badb2 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -3541,39 +3541,40 @@ static int __init mempolicy_sysfs_init(void) int err; static struct kobject *mempolicy_kobj; - mempolicy_kobj = kzalloc(sizeof(*mempolicy_kobj), GFP_KERNEL); - if (!mempolicy_kobj) { + node_attrs = kcalloc(nr_node_ids, sizeof(struct iw_node_attr *), + GFP_KERNEL); + if (!node_attrs) { err = -ENOMEM; goto err_out; } - node_attrs = kcalloc(nr_node_ids, sizeof(struct iw_node_attr *), - GFP_KERNEL); - if (!node_attrs) { + mempolicy_kobj = kzalloc(sizeof(*mempolicy_kobj), GFP_KERNEL); + if (!mempolicy_kobj) { err = -ENOMEM; - goto mempol_out; + goto node_out; } err = kobject_init_and_add(mempolicy_kobj, &mempolicy_ktype, mm_kobj, "mempolicy"); - if (err) - goto node_out; + if (err) { + kobject_put(mempolicy_kobj); + goto err_out; + } err = add_weighted_interleave_group(mempolicy_kobj); if (err) { - pr_err("mempolicy sysfs structure failed to initialize\n"); kobject_put(mempolicy_kobj); - return err; + goto err_out; } - return err; + return 0; + node_out: kfree(node_attrs); -mempol_out: - kfree(mempolicy_kobj); err_out: - pr_err("failed to add mempolicy kobject to the system\n"); + pr_err("mempolicy sysfs structure failed to initialize\n"); return err; + } late_initcall(mempolicy_sysfs_init);