[PATCH v3 0/8] coresight: Fix device registration and unregistration

Leo Yan posted 8 patches 4 days, 20 hours ago
drivers/hwtracing/coresight/coresight-catu.c       |   4 +-
drivers/hwtracing/coresight/coresight-core.c       | 230 +++++++++++++--------
drivers/hwtracing/coresight/coresight-ctcu-core.c  |   4 +-
drivers/hwtracing/coresight/coresight-cti-core.c   |  19 +-
drivers/hwtracing/coresight/coresight-dummy.c      |   7 +-
drivers/hwtracing/coresight/coresight-etb10.c      |   4 +-
drivers/hwtracing/coresight/coresight-etm-perf.c   |   5 +-
drivers/hwtracing/coresight/coresight-funnel.c     |   4 +-
drivers/hwtracing/coresight/coresight-platform.c   |   2 +-
drivers/hwtracing/coresight/coresight-priv.h       |   3 +-
drivers/hwtracing/coresight/coresight-replicator.c |   4 +-
drivers/hwtracing/coresight/coresight-stm.c        |   4 +-
drivers/hwtracing/coresight/coresight-tmc-core.c   |  12 +-
drivers/hwtracing/coresight/coresight-tnoc.c       |   4 +-
drivers/hwtracing/coresight/coresight-tpda.c       |   4 +-
drivers/hwtracing/coresight/coresight-tpdm.c       |   4 +-
drivers/hwtracing/coresight/coresight-tpiu.c       |   4 +-
drivers/hwtracing/coresight/ultrasoc-smb.c         |   4 +-
include/linux/coresight.h                          |  14 +-
19 files changed, 175 insertions(+), 161 deletions(-)
[PATCH v3 0/8] coresight: Fix device registration and unregistration
Posted by Leo Yan 4 days, 20 hours ago
This series is to fix and refactor CoreSight device registration and
unregistration, it can be divided into three small parts:

  Patches 01-03: Three fixes for memory leak, device reference and mutex
                 protection.
  Patches 04-05: Move connection cleanup operations into
                 coresight_remove_conns().
  Patches 06-08: Refactor error handling in coresight_register().

This series is verified on Juno board with kmemleak detector.

For kmemleak verifying:

  echo clear > /sys/kernel/debug/kmemleak
  insmod coresight modules
  rmmod coresight modules
  echo scan > /sys/kernel/debug/kmemleak

The result shows no memory leak during a cycle of device registration
and unregistration.

---
Changes in v3:
- Updated patch 01 to use coesight core layer for device index list
  (Suzuki).
- Link to v2: https://lore.kernel.org/r/20260126-arm_coresight_refactor_dev_register-v2-0-b5a3c0441c15@arm.com

Changes in v2:
- Refined the commit log in patch 06 (Suzuki).
- Unified to call coresight_unregister() for error handling (Suzuki).
- Refactor connection and sysfs group release.
- Link to v1: https://lore.kernel.org/linux-arm-kernel/20250512154108.23920-1-leo.yan@arm.com/

To: Suzuki K Poulose <suzuki.poulose@arm.com>
To: Mike Leach <mike.leach@arm.com>
To: James Clark <james.clark@linaro.org>
To: Alexander Shishkin <alexander.shishkin@linux.intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
To: Mao Jinlong <quic_jinlmao@quicinc.com>
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Leo Yan <leo.yan@arm.com>

---
Leo Yan (8):
      coresight: Fix memory leak in coresight_alloc_device_name()
      coresight: Get parent device reference after sink ID map allocation
      coresight: Protect unregistration with mutex
      coresight: Refactor output connection sysfs link cleanup
      coresight: Refactor sysfs connection group cleanup
      coresight: Move sink validation into etm_perf_add_symlink_sink()
      coresight: Do not mix success path with failure handling
      coresight: Unify error handling in coresight_register()

 drivers/hwtracing/coresight/coresight-catu.c       |   4 +-
 drivers/hwtracing/coresight/coresight-core.c       | 230 +++++++++++++--------
 drivers/hwtracing/coresight/coresight-ctcu-core.c  |   4 +-
 drivers/hwtracing/coresight/coresight-cti-core.c   |  19 +-
 drivers/hwtracing/coresight/coresight-dummy.c      |   7 +-
 drivers/hwtracing/coresight/coresight-etb10.c      |   4 +-
 drivers/hwtracing/coresight/coresight-etm-perf.c   |   5 +-
 drivers/hwtracing/coresight/coresight-funnel.c     |   4 +-
 drivers/hwtracing/coresight/coresight-platform.c   |   2 +-
 drivers/hwtracing/coresight/coresight-priv.h       |   3 +-
 drivers/hwtracing/coresight/coresight-replicator.c |   4 +-
 drivers/hwtracing/coresight/coresight-stm.c        |   4 +-
 drivers/hwtracing/coresight/coresight-tmc-core.c   |  12 +-
 drivers/hwtracing/coresight/coresight-tnoc.c       |   4 +-
 drivers/hwtracing/coresight/coresight-tpda.c       |   4 +-
 drivers/hwtracing/coresight/coresight-tpdm.c       |   4 +-
 drivers/hwtracing/coresight/coresight-tpiu.c       |   4 +-
 drivers/hwtracing/coresight/ultrasoc-smb.c         |   4 +-
 include/linux/coresight.h                          |  14 +-
 19 files changed, 175 insertions(+), 161 deletions(-)
---
base-commit: eebe8dbd8630f51cf70b1f68a440cd3d7f7a914d
change-id: 20260120-arm_coresight_refactor_dev_register-f16c069db41d

Best regards,
-- 
Leo Yan <leo.yan@arm.com>
Re: [PATCH v3 0/8] coresight: Fix device registration and unregistration
Posted by James Clark 3 days, 18 hours ago

On 02/02/2026 9:33 am, Leo Yan wrote:
> This series is to fix and refactor CoreSight device registration and
> unregistration, it can be divided into three small parts:
> 
>    Patches 01-03: Three fixes for memory leak, device reference and mutex
>                   protection.
>    Patches 04-05: Move connection cleanup operations into
>                   coresight_remove_conns().
>    Patches 06-08: Refactor error handling in coresight_register().
> 
> This series is verified on Juno board with kmemleak detector.
> 
> For kmemleak verifying:
> 
>    echo clear > /sys/kernel/debug/kmemleak
>    insmod coresight modules
>    rmmod coresight modules
>    echo scan > /sys/kernel/debug/kmemleak
> 
> The result shows no memory leak during a cycle of device registration
> and unregistration.
> 
> ---
> Changes in v3:
> - Updated patch 01 to use coesight core layer for device index list
>    (Suzuki).
> - Link to v2: https://lore.kernel.org/r/20260126-arm_coresight_refactor_dev_register-v2-0-b5a3c0441c15@arm.com
> 
> Changes in v2:
> - Refined the commit log in patch 06 (Suzuki).
> - Unified to call coresight_unregister() for error handling (Suzuki).
> - Refactor connection and sysfs group release.
> - Link to v1: https://lore.kernel.org/linux-arm-kernel/20250512154108.23920-1-leo.yan@arm.com/
> 
> To: Suzuki K Poulose <suzuki.poulose@arm.com>
> To: Mike Leach <mike.leach@arm.com>
> To: James Clark <james.clark@linaro.org>
> To: Alexander Shishkin <alexander.shishkin@linux.intel.com>
> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> To: Mathieu Poirier <mathieu.poirier@linaro.org>
> To: Mao Jinlong <quic_jinlmao@quicinc.com>
> Cc: coresight@lists.linaro.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Leo Yan <leo.yan@arm.com>
> 
> ---
> Leo Yan (8):
>        coresight: Fix memory leak in coresight_alloc_device_name()
>        coresight: Get parent device reference after sink ID map allocation
>        coresight: Protect unregistration with mutex
>        coresight: Refactor output connection sysfs link cleanup
>        coresight: Refactor sysfs connection group cleanup
>        coresight: Move sink validation into etm_perf_add_symlink_sink()
>        coresight: Do not mix success path with failure handling
>        coresight: Unify error handling in coresight_register()
> 
>   drivers/hwtracing/coresight/coresight-catu.c       |   4 +-
>   drivers/hwtracing/coresight/coresight-core.c       | 230 +++++++++++++--------
>   drivers/hwtracing/coresight/coresight-ctcu-core.c  |   4 +-
>   drivers/hwtracing/coresight/coresight-cti-core.c   |  19 +-
>   drivers/hwtracing/coresight/coresight-dummy.c      |   7 +-
>   drivers/hwtracing/coresight/coresight-etb10.c      |   4 +-
>   drivers/hwtracing/coresight/coresight-etm-perf.c   |   5 +-
>   drivers/hwtracing/coresight/coresight-funnel.c     |   4 +-
>   drivers/hwtracing/coresight/coresight-platform.c   |   2 +-
>   drivers/hwtracing/coresight/coresight-priv.h       |   3 +-
>   drivers/hwtracing/coresight/coresight-replicator.c |   4 +-
>   drivers/hwtracing/coresight/coresight-stm.c        |   4 +-
>   drivers/hwtracing/coresight/coresight-tmc-core.c   |  12 +-
>   drivers/hwtracing/coresight/coresight-tnoc.c       |   4 +-
>   drivers/hwtracing/coresight/coresight-tpda.c       |   4 +-
>   drivers/hwtracing/coresight/coresight-tpdm.c       |   4 +-
>   drivers/hwtracing/coresight/coresight-tpiu.c       |   4 +-
>   drivers/hwtracing/coresight/ultrasoc-smb.c         |   4 +-
>   include/linux/coresight.h                          |  14 +-
>   19 files changed, 175 insertions(+), 161 deletions(-)
> ---
> base-commit: eebe8dbd8630f51cf70b1f68a440cd3d7f7a914d
> change-id: 20260120-arm_coresight_refactor_dev_register-f16c069db41d
> 
> Best regards,

Reviewed-by: James Clark <james.clark@linaro.org>