** Description changed:
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
+ 465 | if (csdev->refcnt == 0) {
+ | ~~~~~~~~~~~~~ ^~
+ | |
+ | atomic_t
drivers/hwtracing/coresight/coresight-catu.c:471:30: error: wrong type
argument to increment
- 471 | csdev->refcnt++;
- | ^~
+ 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) {
- | ^~
+ 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);
- | ^~~~~~~~~~~~~~~~~~~~~
+ 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)
-
+ 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 so everything applies cleanly.
+ up to the fix commit.
- NOTE: I decided it would be best to port the entire patch series
+ 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. All the patches apply
- cleanly.
+ 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.
** Also affects: linux (Ubuntu Noble)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2142336
Title:
Coresight fails to build on 6.8.0-101 due to 'atomic_t' member
accessed as 'int'
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2142336/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs