On Mon, Apr 13, 2026 at 03:19:56PM +0100, Yeoreum Yun wrote:
If etm4_enable_sysfs() fails in cscfg_csdev_enable_active_config(), the trace ID may be leaked because it is not released.
To address this, call etm4_release_trace_id() when etm4_enable_sysfs() fails in cscfg_csdev_enable_active_config().
Signed-off-by: Yeoreum Yun yeoreum.yun@arm.com
drivers/hwtracing/coresight/coresight-etm4x-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c index 8ebfd3924143..1bc9f13e33f7 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -918,8 +918,10 @@ static int etm4_enable_sysfs(struct coresight_device *csdev, struct coresight_pa cscfg_config_sysfs_get_active_cfg(&cfg_hash, &preset); if (cfg_hash) { ret = cscfg_csdev_enable_active_config(csdev, cfg_hash, preset);
if (ret)
if (ret) {etm4_release_trace_id(drvdata);
I am not familiar with the trace ID, seems to me, it just allocate a ID for each tracer from the ID map and then always use this cached ID for the tracers.
If so, even an ID is reserved for failures, and the ID map is big enough for each CPU, we don't need to worry memory leak or ID used out issue ?
Thanks, Leo
return ret;
}}raw_spin_lock(&drvdata->spinlock); -- LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}