NACK: [SRU][N][PATCH 00/13] Coresight fails to build on 6.8.0-101 due to 'atomic_t' member accessed as 'int'
Noah Wager
noah.wager at canonical.com
Mon Feb 23 20:16:34 UTC 2026
On Fri, Feb 20, 2026 at 04:49:40PM -0800, Noah Wager wrote:
> BugLink: https://bugs.launchpad.net/bugs/2142336
>
> SRU Justification:
>
> [Impact]
>
> When CONFIG_CORESIGHT is enabled, noble 6.8.0-101 fails to build with the following errors:
>
> ```
> drivers/hwtracing/coresight/coresight-catu.c: In function 'catu_enable':
> drivers/hwtracing/coresight/coresight-catu.c:465:27: error: invalid operands to binary == (have 'atomic_t' and 'int')
> 465 | if (csdev->refcnt == 0) {
> | ~~~~~~~~~~~~~ ^~
> | |
> | atomic_t
> drivers/hwtracing/coresight/coresight-catu.c:471:30: error: wrong type argument to increment
> 471 | csdev->refcnt++;
> | ^~
> drivers/hwtracing/coresight/coresight-catu.c: In function 'catu_disable':
> drivers/hwtracing/coresight/coresight-catu.c:498:13: error: wrong type argument to decrement
> 498 | if (--csdev->refcnt == 0) {
> | ^~
> drivers/hwtracing/coresight/coresight-catu.c: In function 'catu_init':
> drivers/hwtracing/coresight/coresight-catu.c:728:15: error: implicit declaration of function 'coresight_init_driver' [-Werror=implicit-function-declaration]
> 728 | ret = coresight_init_driver("catu", &catu_driver, &catu_platform_driver);
> | ^~~~~~~~~~~~~~~~~~~~~
> ```
>
> These errors are a result of including the following patch in upstream stable
> updates, but missing some dependencies from the original patch set:
>
> Error description: refcnt accessed as int but defined as atomic_t
> Break commit: n/linux 0e2198d37507 ("coresight: catu: Introduce refcount and spinlock for enabling/disabling")
> Missing commit: 4545b38ef004 ("coresight: Remove atomic type from refcnt")
> Patch series: "coresight: Separate sysfs and Perf usage and some other cleanups"
> (https://lists.infradead.org/pipermail/linux-arm-kernel/2024-January/899269.html)
>
> [Fix]
>
> Cherry-pick upstream commit:
> 4545b38ef004 ("coresight: Remove atomic type from refcnt")
> which involves cherry-picking the commits in the series:
> "coresight: Separate sysfs and Perf usage and some other cleanups"
> up to the fix commit.
>
> NOTE: I decided it would be best to backport the entire patch series
> because the rest of the patches, while not *strictly* necessary for a
> successful build, add some clean up and helpers that do not change
> behaviour and may be useful when pulling in future upstream commits,
> as we will be less likely to miss a dependency. That means the full list
> of cherry-picks is:
>
> a0fef3f05cf3 ("coresight: Make language around "activated" sinks consistent")
> a11ebe138b8d ("coresight: Remove ops callback checks")
> 9cae77cf23e3 ("coresight: Move mode to struct coresight_device")
> d5e83f97eb56 ("coresight: Remove the 'enable' field.")
> 1f5149c7751c ("coresight: Move all sysfs code to sysfs file")
> 4545b38ef004 ("coresight: Remove atomic type from refcnt")
> 053ad9ad1d13 ("coresight: Remove unused stubs")
> 812265e26ed3 ("coresight: Add explicit member initializers to coresight_dev_type")
> d724f65218b9 ("coresight: Add helper for atomically taking the device")
> c95c2733e5fe ("coresight: Add a helper for getting csdev->mode")
> bcaabb95f0c9 ("coresight: Add helper for setting csdev->mode")
>
> NOTE 2: To apply the patches cleanly, I had to revert the already-applied
> "coresight-etb10: change etb_drvdata spinlock's type to raw_spinlock_t"
> and then re-cherry-pick it from upstream, where it applies cleanly. I found
> this approach safer than mangling all the new commits to fix context changes.
>
> [Test Plan]
>
> Ensure CONFIG_CORESIGHT and CONFIG_CORESIGHT_CATU are enabled, then compile test.
>
> [Where problems could occur]
>
> There is a low chance of regression since this patchset is purely cleanup and
> does not modify observable behaviour, as stated by the author in the original
> patch set. Additionally, coresight failed to build before this, so this is
> a guaranteed improvement in that respect. These changes do alter some function
> and struct definitions, which could cause build failures in downstream projects
> that have non-upstream coresight patches reliant on the legacy definitions.
>
> James Clark (11):
> coresight: Make language around "activated" sinks consistent
> coresight: Remove ops callback checks
> coresight: Move mode to struct coresight_device
> coresight: Remove the 'enable' field.
> coresight: Move all sysfs code to sysfs file
> coresight: Remove atomic type from refcnt
> coresight: Remove unused stubs
> coresight: Add explicit member initializers to coresight_dev_type
> coresight: Add helper for atomically taking the device
> coresight: Add a helper for getting csdev->mode
> coresight: Add helper for setting csdev->mode
>
> Noah Wager (1):
> Revert "coresight-etb10: change etb_drvdata spinlock's type to
> raw_spinlock_t"
>
> Yeoreum Yun (1):
> coresight-etb10: change etb_drvdata spinlock's type to raw_spinlock_t
>
> drivers/hwtracing/coresight/coresight-core.c | 490 +-----------------
> drivers/hwtracing/coresight/coresight-etb10.c | 29 +-
> drivers/hwtracing/coresight/coresight-etm.h | 2 -
> .../coresight/coresight-etm3x-core.c | 23 +-
> .../coresight/coresight-etm3x-sysfs.c | 4 +-
> .../coresight/coresight-etm4x-core.c | 26 +-
> drivers/hwtracing/coresight/coresight-etm4x.h | 1 -
> drivers/hwtracing/coresight/coresight-priv.h | 7 +-
> drivers/hwtracing/coresight/coresight-stm.c | 30 +-
> drivers/hwtracing/coresight/coresight-sysfs.c | 391 ++++++++++++++
> .../hwtracing/coresight/coresight-tmc-core.c | 2 +-
> .../hwtracing/coresight/coresight-tmc-etf.c | 46 +-
> .../hwtracing/coresight/coresight-tmc-etr.c | 33 +-
> drivers/hwtracing/coresight/coresight-tmc.h | 2 -
> drivers/hwtracing/coresight/coresight-tpda.c | 13 +-
> drivers/hwtracing/coresight/coresight-tpiu.c | 14 +-
> drivers/hwtracing/coresight/ultrasoc-smb.c | 22 +-
> drivers/hwtracing/coresight/ultrasoc-smb.h | 2 -
> include/linux/coresight.h | 146 ++----
> 19 files changed, 594 insertions(+), 689 deletions(-)
>
> --
> 2.43.0
>
As per Stefan's comment in this thread, cherry picking the entire
patchset is excessive to fix this issue. This PR needs to be reworked to
a more minimal set of changes, so I will NACK myself and send a V2.
More information about the kernel-team
mailing list