From mboxrd@z Thu Jan 1 00:00:00 1970 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 2EF09C28B28 for ; Wed, 12 Mar 2025 15:49:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F58328000A; Wed, 12 Mar 2025 11:49:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 17F92280009; Wed, 12 Mar 2025 11:49:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0200E28000A; Wed, 12 Mar 2025 11:49:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id D6BB0280009 for ; Wed, 12 Mar 2025 11:49:11 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 054D4811B3 for ; Wed, 12 Mar 2025 15:49:11 +0000 (UTC) X-FDA: 83213332944.27.959AF16 Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by imf12.hostedemail.com (Postfix) with ESMTP id 388FD4000B for ; Wed, 12 Mar 2025 15:49:10 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=oAmGJ4S4; dmarc=none; spf=pass (imf12.hostedemail.com: domain of gourry@gourry.net designates 209.85.160.170 as permitted sender) smtp.mailfrom=gourry@gourry.net ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741794550; a=rsa-sha256; cv=none; b=nQ2yN5/vnh2jIBnFNzgp9xL670BWD8iBVGssJsqrwdcBDoBKAVUcwxBo0lDibxgZ6TDmPA i0oROdg6Fm0/1f2lrErD+5k+KoKAnxRVQvtelcWOQCNm90cxCprZ430JdGRR7BzYfd8gwY oiZJnXQJAmnmPdpShdkmtn2J8oBh4SE= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=oAmGJ4S4; dmarc=none; spf=pass (imf12.hostedemail.com: domain of gourry@gourry.net designates 209.85.160.170 as permitted sender) smtp.mailfrom=gourry@gourry.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741794550; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Ofjgk4zuzVS+cwXy38yJsSZN8fRmew2OrhBauRs/AxI=; b=knEwYWlLYxHNb8VwH8L29q5/PFx2yqIN/laJ/a2K/ZZ2xwJPWCv6qvtbcd/webjQvK7Bdz ZU0Vd07cZ/JzXHsf+womPZl8NrVj0yc9mPxSvSZErzhGFZ/dW6I9uDtnApb/bdUafbcze4 ZK8rFg5BGoY8UHaCaw0i2E5i/NCExVs= Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-4769b16d4fbso14005481cf.2 for ; Wed, 12 Mar 2025 08:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1741794549; x=1742399349; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Ofjgk4zuzVS+cwXy38yJsSZN8fRmew2OrhBauRs/AxI=; b=oAmGJ4S4unZ4pcH/66e71liv6gK/83cyfev8Kw8dST2P+pjhCrusBPRrIf1OB7Dt2X 0cXq2xM8YU46zvPm8HuJsSNjRA5KRzaxzpNraDY01UIn0OsWJOvn0ig2a+5yNj/phDP0 PniE4LnN7CL05IVb5tmAfi3dqY0Mz7at5xwMkVkLBTNkC9FWuNaosCFF9T5b958BHN66 DSvFeLbd5YwrUG2/LxsjWKUbxkNTiTASjrDFU0mxqMMpxAGbp4BiveqrDeohISAVBm+M 9FS7FjdELHixi1zHf2xyXOowT2pi+O+jgC7Nxzl57cH9uA95FmMccYcfGhtujyDZHkiW w4IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741794549; x=1742399349; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Ofjgk4zuzVS+cwXy38yJsSZN8fRmew2OrhBauRs/AxI=; b=AS1xnirSc3h35ckg6Eh4JniY6V6VW1bg8uwwtV9EP6L+N7B0rESem9UzqnTbhAMj9T duzSgce7xx1YiIjGaJ1DXG+oFjGVLCUHZ3BjyENG4vYvnun79XsUnGy54teCeJOU/1sH gi0san86dTqd0zC3qv6M/gNyRxIkASFoae4iPZ1hgxlqrH0hDmK3omyIlt6v1ED0Gw91 J8MFUUKB7eRFlhVFaLlV2WbWrRghg/nEflQwuUgBJhbnOMf/CA4uXueNNruvFQXReEhh Wu3eh5wUbExf1QorxPCg2OSsUZyqwWUmFCYYFd8lBDp+3lWPk8k2//eCPwGTjESKPj2K YnmQ== X-Forwarded-Encrypted: i=1; AJvYcCWMxzaaSjmW2ZUlJ6hlGVZhQZHPEYGNc4IvI/WMGUiNwrAj4UA0L1qcESpBvXzmy6YqSsU6Kexv2A==@kvack.org X-Gm-Message-State: AOJu0YzG2EJQ695tLgk5H+ktlLwdyRxSXeCnPrnVv72SWyoc0IrI2xOJ yQYiYGEi50T3U7DC3yDKL064Ni4twBNXYQvZheQLOB8cX7A/qAKtK5iQ7G2JwV8= X-Gm-Gg: ASbGncvSo1e4RQGcD3LxcTCqGEHe5ME4MFDbyAxxTRo2prDzWmLAQ2xrA6plBpw2yEP OdWKxNPPyISHSzgpz5opPaAzarzFvdiuGHSDySLwLoDoZYYqe5ra/BOxneAUx9nEM5YY0CxPKXO h8ZCV1I9c3VfeVJDk+qMN48iWJ5guYpw1l6Q1oaUrwq3wBgQRt3qU1gexar1SX8jVydUpgLgd/E TpprQS/0K0010iVTV3m8Jk6lTraRGotXCG4wc+7S8zrNccyz9nusoTcDWWFKsOLasYOaz7QTSm1 Ig/N9FX0fqJhXAN2m9Vc5qOvVJP0aR37M86jkkuf82c3F4vS5jsTCf31ck5wC6gvLPOkguZJ155 j9w8SVvSva7fHSSCmcHRtJU8Dl30= X-Google-Smtp-Source: AGHT+IHgLZkEvIln4jLLyfDar99K/dWJ5BxlXAP1djqq5pBtYYfVdlZnJt+v1rDagFjkM9RWUey0ww== X-Received: by 2002:a05:6214:500f:b0:6e6:6c7f:111a with SMTP id 6a1803df08f44-6e9007022f2mr241507726d6.40.1741794548627; Wed, 12 Mar 2025 08:49:08 -0700 (PDT) Received: from gourry-fedora-PF4VCD3F (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6e8f70a44adsm85938316d6.64.2025.03.12.08.49.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 08:49:08 -0700 (PDT) Date: Wed, 12 Mar 2025 11:49:06 -0400 From: Gregory Price To: Rakie Kim 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 Subject: Re: [PATCH v2 1/4] mm/mempolicy: Fix memory leaks in mempolicy_sysfs_init() Message-ID: References: <20250312075628.648-1-rakie.kim@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250312075628.648-1-rakie.kim@sk.com> X-Stat-Signature: yjsdcdz477e9qf837htx3j3ed584ync6 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 388FD4000B X-Rspam-User: X-HE-Tag: 1741794550-942389 X-HE-Meta: U2FsdGVkX18/nrWKkRclwWjWSysUiP5e2nP83TyI/1Sx1oINvgZPnvlzijYCx5RZ77LBZCOBM/IOPOPGsS+LgvFNhkqZm3fCeCz3bXDBxeRVu6EcriBCXgWqnqrOvy4+UGUBGRbCf4A/6WXDsaKp814C2v9XUzwfkQdVuN5Q0Zfjh486/UOafVkL3jj3VgJYres8VG14pPNzQLzjwhom4ZzJpWy81ADCSaPOYGfUjgiNwdZbkUFI6L4//agISvNAyMb3dvYDMRkQKf08TkKCW3UvunJqj+zguvBUWVm+0KNHY3E6y0yKMuqBEyn1lfm780Nl3/zV+5kVUb+E0TRNIi/lzDsV2xWGp6RaMo/TLqr28UlQvPjJHIPhuYg0253g8OHBMDXG3KBox55WBtllj9maEImueCfG/hGyM5HOEME6TmNSzWnvG6j+PJG6XLpx+QY5kd3b5kJYXH1xvsm93e4PK0/7yHwmJ4wsRIL54oPlaMFmcZG20Ql/gV4lcZmp7zgj8R4I66fY6hmx989WVkETPZZ3e43rgUQFJGxNFaov6TDUZpmEl8BBwwxdItST4DNa3wviamMo54K16rTsbBU3XqV02z8qbxWfWDWl+dCWlHAmjeKpMcLac+UubJ7Ja/RkAS2SGmiQYBWdjREQFIpt4FzZHJ+sVs3VNiFBFkj6caPkrnkJKp4GqLPmrQxIePK6vGF8jhXhRuYHROmReBpTGjNh7ik5J14qAnxF5JGkmlH9jts1nA7MHPZyDFhLW/QN5sw1Ms5NSOL8cPTzvGHtQNU7kxpp9hMI0HDNh9By6lS1AqS0IHsaQ3Wntk7WLWjw7LFWgxQc3ZIiQ/zVi71+MX/lejYzROqNzh3yBa4QFzWwCdaoxmZISLrF8uYBREd/0jGH3egLgWJSatzimC973N4glUKY046MJagp5pM4Oy/w5siGIFKhyzIdp2xkziWL1qq1+0BBNFoPENc 3JIbxdFF n1DH3wgOrJsUmDVS86o+ANwdmMQevaRDJPDjk4BYId4fa9XRz3HV91ojbxQ46Mf0NYVSKa1Ho3nR26cSwwQ8SUzr1DYisKZ4s7YFJjtDXWQDvDi9CyMC00Kx6aPR+H4p+2C2eh8Ug2puvkFdAf9kaP08KBQ== 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: On Wed, Mar 12, 2025 at 04:56:24PM +0900, Rakie Kim wrote: > 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. > This patch does multiple things, please split these changes into multiple patches. > 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(-) > > 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; > } It's not clear to me why you re-ordered these allocations, it seems superfluous. > > err = kobject_init_and_add(mempolicy_kobj, &mempolicy_ktype, mm_kobj, > "mempolicy"); > - if (err) > - goto node_out; > + if (err) { > + kobject_put(mempolicy_kobj); Is this correct? If kobject_init_and_add fails, from other examples we need only free the mempolicy_kobj - because it failed to initialize and therefore should not have any references. I think this causes an underflow. > + 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; > + Please keep functional changes and refactors separate. There's more churn in this patch than is needed to accomplish what the changelog states is the intent. > 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); > > base-commit: 80e54e84911a923c40d7bee33a34c1b4be148d7a > -- > 2.34.1 >