]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs/resctrl: Free mon_data structures on rdt_get_tree() failure
authorTony Luck <tony.luck@intel.com>
Mon, 6 Jul 2026 22:46:21 +0000 (15:46 -0700)
committerBorislav Petkov (AMD) <bp@alien8.de>
Tue, 7 Jul 2026 00:42:38 +0000 (17:42 -0700)
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")
Closes: https://lore.kernel.org/lkml/5d38c1fb-8f91-472b-8897-24b2f50c772b@intel.com/
Reported-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Chen Yu <yu.c.chen@intel.com>
Reviewed-by: Ben Horgan <ben.horgan@arm.com>
Cc: <stable@kernel.org>
Link: https://patch.msgid.link/433623b7e3316ffd52323255d1aa4f156ad97cb1.1783377598.git.reinette.chatre@intel.com
fs/resctrl/rdtgroup.c

index af2cbab14497ee7b3eeaf5a9cf863addd8d8778d..1312b52c7f7bd80491d2b277fa03dae8477ca86d 100644 (file)
@@ -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 @@ out_mondata:
                kernfs_remove(kn_mondata);
 out_mongrp:
        if (resctrl_arch_mon_capable()) {
+               mon_put_kn_priv();
                rdtgroup_unassign_cntrs(&rdtgroup_default);
                kernfs_remove(kn_mongrp);
        }