The domain attributes returned by the perf protocol can end up reporting identical names across domains, resulting in debugfs node creation failure. Fix this duplication by appending the domain-id to the domain name. Logs: debugfs: Directory 'NCC' with parent 'pm_genpd' already present! debugfs: Directory 'NCC' with parent 'pm_genpd' already present! Fixes: 2af23ceb8624 ("pmdomain: arm: Add the SCMI performance domain") Signed-off-by: Sibi Sankar <quic_sibis@xxxxxxxxxxx> --- drivers/pmdomain/arm/scmi_perf_domain.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/pmdomain/arm/scmi_perf_domain.c b/drivers/pmdomain/arm/scmi_perf_domain.c index d7ef46ccd9b8..0af5dc941349 100644 --- a/drivers/pmdomain/arm/scmi_perf_domain.c +++ b/drivers/pmdomain/arm/scmi_perf_domain.c @@ -18,6 +18,7 @@ struct scmi_perf_domain { const struct scmi_perf_proto_ops *perf_ops; const struct scmi_protocol_handle *ph; const struct scmi_perf_domain_info *info; + char domain_name[SCMI_MAX_STR_SIZE]; u32 domain_id; }; @@ -123,7 +124,12 @@ static int scmi_perf_domain_probe(struct scmi_device *sdev) scmi_pd->domain_id = i; scmi_pd->perf_ops = perf_ops; scmi_pd->ph = ph; - scmi_pd->genpd.name = scmi_pd->info->name; + + /* Domain attributes can report identical names across domains */ + snprintf(scmi_pd->domain_name, sizeof(scmi_pd->domain_name), "%s-%d", + scmi_pd->info->name, scmi_pd->domain_id); + + scmi_pd->genpd.name = scmi_pd->domain_name; scmi_pd->genpd.flags = GENPD_FLAG_ALWAYS_ON | GENPD_FLAG_OPP_TABLE_FW; scmi_pd->genpd.set_performance_state = scmi_pd_set_perf_state; -- 2.34.1