[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251225082059.1632-6-lizhe.67@bytedance.com>
Date: Thu, 25 Dec 2025 16:20:56 +0800
From: 李喆 <lizhe.67@...edance.com>
To: <muchun.song@...ux.dev>, <osalvador@...e.de>, <david@...nel.org>,
<akpm@...ux-foundation.org>, <fvdl@...gle.com>
Cc: <linux-mm@...ck.org>, <linux-kernel@...r.kernel.org>,
<lizhe.67@...edance.com>
Subject: [PATCH 5/8] mm/hugetlb: simplify function hugetlb_sysfs_add_hstate()
From: Li Zhe <lizhe.67@...edance.com>
The third parameter of hugetlb_sysfs_add_hstate() is currently an array
of struct kobject *, yet the function only ever uses a single element.
This patch narrows the argument to a pointer to that specific member,
eliminating the unused array.
Signed-off-by: Li Zhe <lizhe.67@...edance.com>
---
mm/hugetlb_sysfs.c | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/mm/hugetlb_sysfs.c b/mm/hugetlb_sysfs.c
index 8c3e433209c3..87dcd3038abc 100644
--- a/mm/hugetlb_sysfs.c
+++ b/mm/hugetlb_sysfs.c
@@ -304,31 +304,30 @@ static const struct attribute_group hstate_demote_attr_group = {
};
static int hugetlb_sysfs_add_hstate(struct hstate *h, struct kobject *parent,
- struct kobject **hstate_kobjs,
+ struct kobject **hstate_kobj,
const struct attribute_group *hstate_attr_group)
{
int retval;
- int hi = hstate_index(h);
- hstate_kobjs[hi] = kobject_create_and_add(h->name, parent);
- if (!hstate_kobjs[hi])
+ *hstate_kobj = kobject_create_and_add(h->name, parent);
+ if (!*hstate_kobj)
return -ENOMEM;
- retval = sysfs_create_group(hstate_kobjs[hi], hstate_attr_group);
+ retval = sysfs_create_group(*hstate_kobj, hstate_attr_group);
if (retval) {
- kobject_put(hstate_kobjs[hi]);
- hstate_kobjs[hi] = NULL;
+ kobject_put(*hstate_kobj);
+ *hstate_kobj = NULL;
return retval;
}
if (h->demote_order) {
- retval = sysfs_create_group(hstate_kobjs[hi],
+ retval = sysfs_create_group(*hstate_kobj,
&hstate_demote_attr_group);
if (retval) {
pr_warn("HugeTLB unable to create demote interfaces for %s\n", h->name);
- sysfs_remove_group(hstate_kobjs[hi], hstate_attr_group);
- kobject_put(hstate_kobjs[hi]);
- hstate_kobjs[hi] = NULL;
+ sysfs_remove_group(*hstate_kobj, hstate_attr_group);
+ kobject_put(*hstate_kobj);
+ *hstate_kobj = NULL;
return retval;
}
}
@@ -562,8 +561,8 @@ void hugetlb_register_node(struct node *node)
for_each_hstate(h) {
err = hugetlb_sysfs_add_hstate(h, nhs->hugepages_kobj,
- nhs->hstate_kobjs,
- &per_node_hstate_attr_group);
+ &nhs->hstate_kobjs[hstate_index(h)],
+ &per_node_hstate_attr_group);
if (err) {
pr_err("HugeTLB: Unable to add hstate %s for node %d\n",
h->name, node->dev.id);
@@ -610,7 +609,7 @@ void __init hugetlb_sysfs_init(void)
for_each_hstate(h) {
err = hugetlb_sysfs_add_hstate(h, hugepages_kobj,
- hstate_kobjs, &hstate_attr_group);
+ &hstate_kobjs[hstate_index(h)], &hstate_attr_group);
if (err)
pr_err("HugeTLB: Unable to add hstate %s\n", h->name);
}
--
2.20.1
Powered by blists - more mailing lists