NACK/Cmnt: [SRU][N][PATCH v2 0/1] Coresight fails to build on 6.8.0-101 due to 'atomic_t' member accessed as 'int'

Abdur Rahman abdur.rahman at canonical.com
Fri Feb 27 20:52:54 UTC 2026


On 2/24/26 2:33 AM, 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) {
>        |             ^~
> ```
>
> 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 requires a few context fixups due to missing commits from the original
> patchset. Those missing patches are not required for this commit, so we can
> just fix and apply it alone to reduce the number of changes.
>
> NOTE: These are the missing dependent patches for a clean application:
>
> 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")
>
> These contain pretty significant refactoring and cleanup (although they don't
> alter behaviour) so they were omitted to reduce changes to a stable kernel.
>
> [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 patch 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. There is a risk of breakage if I
> missed some dependent commits, or if my fixups were incorrect.
>
>
> James Clark (1):
>    coresight: Remove atomic type from refcnt
>
>   drivers/hwtracing/coresight/coresight-core.c  |  9 +++++----
>   drivers/hwtracing/coresight/coresight-etb10.c | 11 +++++-----
>   .../hwtracing/coresight/coresight-tmc-etf.c   | 20 ++++++++++---------
>   .../hwtracing/coresight/coresight-tmc-etr.c   | 13 ++++++------
>   drivers/hwtracing/coresight/coresight-tpiu.c  | 14 +++++++++++--
>   drivers/hwtracing/coresight/ultrasoc-smb.c    |  9 +++++----
>   include/linux/coresight.h                     |  7 +++++--
>   7 files changed, 51 insertions(+), 32 deletions(-)
>
Thanks for the backport effort. +1 on Stefan's comments and I would 
agree that we
can take this fix.

However, there seems to be some minor issues with the patch.

It would be nice to explicitly mention the coresight-tpda.c file in the 
backport message
and why changes aren't applicable to that file.

The reason for NACK are as follows:
In the following hunk:
@@ -391,7 +391,7 @@ int coresight_enable_source(struct coresight_device 
*csdev, enum cs_mode mode, csdev->enable = true; } - 
atomic_inc(&csdev->refcnt); + csdev->refcnt--; return 0; }
atomic_inc is replaced by decrement. This seems wrong.

Since a V3 is required, I would recommend adding the BugLink as well.

Nacked-by: Abdur Rahman <abdur.rahman at canonical.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260227/e96dfc7a/attachment.html>


More information about the kernel-team mailing list