mirror of
https://github.com/torvalds/linux.git
synced 2026-07-30 19:21:28 +02:00
coresight: Handle helper enable failure properly
If a helper fails to be enabled, unwind any helpers that were already
enabled earlier in the loop. This avoids leaving partially enabled
helpers behind.
Fixes: 6148652807 ("coresight: Enable and disable helper devices adjacent to the path")
Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com>
Reviewed-by: James Clark <james.clark@linaro.org>
Tested-by: James Clark <james.clark@linaro.org>
Tested-by: Jie Gan <jie.gan@oss.qualcomm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20260515-arm_coresight_path_power_management_improvement-v14-2-f88c4a3ecfe9@arm.com
This commit is contained in:
parent
ea2c2b9e2a
commit
864754d0a0
|
|
@ -499,10 +499,19 @@ static int coresight_enable_helpers(struct coresight_device *csdev,
|
|||
|
||||
ret = coresight_enable_helper(helper, mode, path);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
while (i--) {
|
||||
helper = csdev->pdata->out_conns[i]->dest_dev;
|
||||
if (helper && coresight_is_helper(helper))
|
||||
coresight_disable_helper(helper, path);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int coresight_enable_path(struct coresight_path *path, enum cs_mode mode)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user