fs/resctrl/rdtgroup.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
schemata_list_destroy() has to be called if schemata_list_create() fails.
rdt_get_tree() calls schemata_list_destroy() in two different ways:
directly if schemata_list_create() itself fails and
on the exit path via the out_schemata_free goto label.
Remove schemata_list_destroy() call on schemata_list_create() failure.
Use existing out_schemata_free goto label instead.
Signed-off-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Reviewed-by: James Morse <james.morse@arm.com>
---
fs/resctrl/rdtgroup.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
index 77d08229d855..5f0b7cfa1cc2 100644
--- a/fs/resctrl/rdtgroup.c
+++ b/fs/resctrl/rdtgroup.c
@@ -2608,10 +2608,8 @@ static int rdt_get_tree(struct fs_context *fc)
goto out_root;
ret = schemata_list_create();
- if (ret) {
- schemata_list_destroy();
- goto out_ctx;
- }
+ if (ret)
+ goto out_schemata_free;
ret = closid_init();
if (ret)
@@ -2683,7 +2681,6 @@ static int rdt_get_tree(struct fs_context *fc)
closid_exit();
out_schemata_free:
schemata_list_destroy();
-out_ctx:
rdt_disable_ctx();
out_root:
rdtgroup_destroy_root();
--
2.43.5
Thanks Reviewed-by: Koba Ko <kobak@nvidia.com> On 6/23/25 15:50, Shaopeng Tan wrote: > External email: Use caution opening links or attachments > > > schemata_list_destroy() has to be called if schemata_list_create() fails. > > rdt_get_tree() calls schemata_list_destroy() in two different ways: > directly if schemata_list_create() itself fails and > on the exit path via the out_schemata_free goto label. > > Remove schemata_list_destroy() call on schemata_list_create() failure. > Use existing out_schemata_free goto label instead. > > Signed-off-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> > Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> > Reviewed-by: James Morse <james.morse@arm.com> > --- > fs/resctrl/rdtgroup.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c > index 77d08229d855..5f0b7cfa1cc2 100644 > --- a/fs/resctrl/rdtgroup.c > +++ b/fs/resctrl/rdtgroup.c > @@ -2608,10 +2608,8 @@ static int rdt_get_tree(struct fs_context *fc) > goto out_root; > > ret = schemata_list_create(); > - if (ret) { > - schemata_list_destroy(); > - goto out_ctx; > - } > + if (ret) > + goto out_schemata_free; > > ret = closid_init(); > if (ret) > @@ -2683,7 +2681,6 @@ static int rdt_get_tree(struct fs_context *fc) > closid_exit(); > out_schemata_free: > schemata_list_destroy(); > -out_ctx: > rdt_disable_ctx(); > out_root: > rdtgroup_destroy_root(); > -- > 2.43.5 >
The following commit has been merged into the x86/cache branch of tip:
Commit-ID: b470929e21393f37cae51a922ef319a753273719
Gitweb: https://git.kernel.org/tip/b470929e21393f37cae51a922ef319a753273719
Author: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
AuthorDate: Mon, 23 Jun 2025 16:50:50 +09:00
Committer: Borislav Petkov (AMD) <bp@alien8.de>
CommitterDate: Mon, 18 Aug 2025 11:34:29 +02:00
fs/resctrl: Optimize code in rdt_get_tree()
schemata_list_destroy() has to be called if schemata_list_create() fails.
rdt_get_tree() calls schemata_list_destroy() in two different ways:
directly if schemata_list_create() itself fails and
on the exit path via the out_schemata_free goto label.
Remove schemata_list_destroy() call on schemata_list_create() failure.
Use existing out_schemata_free goto label instead.
Signed-off-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Reviewed-by: James Morse <james.morse@arm.com>
Reviewed-by: Koba Ko <kobak@nvidia.com>
Link: https://lore.kernel.org/20250623075051.3610592-1-tan.shaopeng@jp.fujitsu.com
---
fs/resctrl/rdtgroup.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
index 77d0822..5f0b7cf 100644
--- a/fs/resctrl/rdtgroup.c
+++ b/fs/resctrl/rdtgroup.c
@@ -2608,10 +2608,8 @@ static int rdt_get_tree(struct fs_context *fc)
goto out_root;
ret = schemata_list_create();
- if (ret) {
- schemata_list_destroy();
- goto out_ctx;
- }
+ if (ret)
+ goto out_schemata_free;
ret = closid_init();
if (ret)
@@ -2683,7 +2681,6 @@ out_closid_exit:
closid_exit();
out_schemata_free:
schemata_list_destroy();
-out_ctx:
rdt_disable_ctx();
out_root:
rdtgroup_destroy_root();
© 2016 - 2025 Red Hat, Inc.