[PATCH v6 01/10] fs/resctrl: Free mon_data structures on rdt_get_tree() failure
From: Reinette Chatre
Date: Mon Jul 06 2026 - 18:47:50 EST
From: Tony Luck <tony.luck@xxxxxxxxx>
If mkdir_mondata_all() or a subsequent call in rdt_get_tree() fails, the
mon_data structures allocated by mon_get_kn_priv() are leaked.
Add mon_put_kn_priv() to the out_mongrp error path to free the mon_data
structures.
Fixes: 2a6566038544 ("x86/resctrl: Expand the width of domid by replacing mon_data_bits")
Reported-by: Reinette Chatre <reinette.chatre@xxxxxxxxx>
Closes: https://lore.kernel.org/lkml/5d38c1fb-8f91-472b-8897-24b2f50c772b@xxxxxxxxx/
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
Signed-off-by: Reinette Chatre <reinette.chatre@xxxxxxxxx>
Reviewed-by: Chen Yu <yu.c.chen@xxxxxxxxx>
Reviewed-by: Ben Horgan <ben.horgan@xxxxxxx>
Cc: <stable@xxxxxxxxxx>
---
Changes since V2:
- Reword changelog.
Changes since V3:
- Add Chenyu's Reviewed-by tag that should have been added in V2.
- Add Ben's Reviewed-by tag.
- Add Closes: tag.
Changes since v5:
- Move patch earlier in series and add forward declaration for
mon_put_kn_priv() to support backporting now that it is needed before
big patch that moves functions. Forward declaration will be removed
as part of the big patch that moves functions so net changes are
same as v5.
- Add Cc: <stable@xxxxxxxxxx>
---
fs/resctrl/rdtgroup.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
index af2cbab14497..1312b52c7f7b 100644
--- a/fs/resctrl/rdtgroup.c
+++ b/fs/resctrl/rdtgroup.c
@@ -74,6 +74,8 @@ static int rdtgroup_setup_root(struct rdt_fs_context *ctx);
static void rdtgroup_destroy_root(void);
+static void mon_put_kn_priv(void);
+
struct dentry *debugfs_resctrl;
/*
@@ -2893,6 +2895,7 @@ static int rdt_get_tree(struct fs_context *fc)
kernfs_remove(kn_mondata);
out_mongrp:
if (resctrl_arch_mon_capable()) {
+ mon_put_kn_priv();
rdtgroup_unassign_cntrs(&rdtgroup_default);
kernfs_remove(kn_mongrp);
}
--
2.54.0