[PATCH v1] arm64: cpuinfo: Fix sysfs cleanup on failure
Yuho Choi
dbgh9129 at gmail.com
Thu Jul 2 16:07:44 PDT 2026
cpuid_cpu_online() creates the CPU registers kobject and the base
identification attribute group before optionally merging the SME-specific
SMIDR attribute into that group.
If the base group creation fails, return after deleting the kobject. If
the SME merge fails, remove the base group before deleting the kobject.
Fixes: d69d56496487 ("arm64/sme: Expose SMIDR through sysfs")
Signed-off-by: Yuho Choi <dbgh9129 at gmail.com>
---
arch/arm64/kernel/cpuinfo.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index d50e2a9b066b..141bcfa4d611 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -380,9 +380,19 @@ static int cpuid_cpu_online(unsigned int cpu)
goto out;
rc = sysfs_create_group(&info->kobj, &cpuregs_attr_group);
if (rc)
- kobject_del(&info->kobj);
- if (system_supports_sme())
+ goto out_del_kobj;
+ if (system_supports_sme()) {
rc = sysfs_merge_group(&info->kobj, &sme_cpuregs_attr_group);
+ if (rc)
+ goto out_remove_group;
+ }
+
+ return 0;
+
+out_remove_group:
+ sysfs_remove_group(&info->kobj, &cpuregs_attr_group);
+out_del_kobj:
+ kobject_del(&info->kobj);
out:
return rc;
}
--
2.43.0
More information about the linux-arm-kernel
mailing list