On 30/04/2025 00:13, Yabin Cui wrote:
When enabling a SINK or LINK type coresight device fails, the associated helpers should be disabled.
Signed-off-by: Yabin Cui yabinc@google.com Suggested-by: Suzuki K Poulose suzuki.poulose@arm.com Reviewed-by: James Clark james.clark@linaro.org Reviewed-by: Mike Leach mike.leach@linaro.org
Again, this should have :
Fixes: 6148652807ba ("coresight: Enable and disable helper devices adjacent to the path")
I have added it locally
Rest looks good to me
Suzuki
drivers/hwtracing/coresight/coresight-core.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c index dabec7073aed..d3523f0262af 100644 --- a/drivers/hwtracing/coresight/coresight-core.c +++ b/drivers/hwtracing/coresight/coresight-core.c @@ -465,7 +465,7 @@ int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, /* Enable all helpers adjacent to the path first */ ret = coresight_enable_helpers(csdev, mode, path); if (ret)
goto err;
/*goto err_disable_path;
- ETF devices are tricky... They can be a link or a sink,
- depending on how they are configured. If an ETF has been
@@ -486,8 +486,10 @@ int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, * that need disabling. Disabling the path here * would mean we could disrupt an existing session. */
if (ret)
if (ret) {
coresight_disable_helpers(csdev, path); goto out;
case CORESIGHT_DEV_TYPE_SOURCE: /* sources are enabled from either sysFS or Perf */} break;
@@ -497,16 +499,19 @@ int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, child = list_next_entry(nd, link)->csdev; ret = coresight_enable_link(csdev, parent, child, source); if (ret)
goto err;
default:goto err_disable_helpers; break;
goto err;
ret = -EINVAL;
} }goto err_disable_helpers;
out: return ret; -err: +err_disable_helpers:
- coresight_disable_helpers(csdev, path);
+err_disable_path: coresight_disable_path_from(path, nd); goto out; }