]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
coresight: Unify bus unregistration via coresight_unregister()
authorLeo Yan <leo.yan@arm.com>
Mon, 9 Feb 2026 12:44:40 +0000 (12:44 +0000)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Wed, 25 Feb 2026 11:14:45 +0000 (11:14 +0000)
Once a device is successfully registered, set the "registered" flag to
true.  After that point, all failures jump to the out_unlock label to
unwind the flow via coresight_unregister().

Since failure handling is unified, the comment about resource release
for the etm_perf_add_symlink_sink() failure is no need, remove it.

Signed-off-by: Leo Yan <leo.yan@arm.com>
Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20260209-arm_coresight_refactor_dev_register-v4-8-62d6042f76f7@arm.com
drivers/hwtracing/coresight/coresight-core.c

index e04545295240d5b25d233e75aa1bad5df0cab699..46f247f73cf64a97b9353b84ba5b76b991676f5f 100644 (file)
@@ -1383,20 +1383,13 @@ struct coresight_device *coresight_register(struct coresight_desc *desc)
                goto out_unlock;
        }
 
-       ret = etm_perf_add_symlink_sink(csdev);
-
-       /*
-        * As with the above, all resources are free'd explicitly via
-        * coresight_device_release() triggered from put_device(), which is in
-        * turn called from function device_unregister().
-        */
-       if (ret && ret != -EOPNOTSUPP) {
-               device_unregister(&csdev->dev);
-               goto out_unlock;
-       }
        /* Device is now registered */
        registered = true;
 
+       ret = etm_perf_add_symlink_sink(csdev);
+       if (ret && ret != -EOPNOTSUPP)
+               goto out_unlock;
+
        ret = coresight_create_conns_sysfs_group(csdev);
        if (ret)
                goto out_unlock;