[PATCH v3 0/3] s390/pci: Enable CONTEXT_ANALYSIS

From: Heiko Carstens

Date: Wed Aug 05 2026 - 09:36:56 EST


v3:

- Add Reviewed-by tags from Niklas to first and third patch and address
nits [Niklas]

- Refactor second patch again to make it hopefully more readable [Niklas]

v2:

- Address potential zdev reference leak (false positive) by adding a
comment, and moving get_zdev_by_fid() [Sashiko, Niklas]

- Note: this reveals a pre-existing bug: zpci_remove_reserved_devices()
calls zpci_device_reserved() without holding locks. It looks like
this can be fixed easily by adding a mutex_lock()/mutex_unlock()
pair in zpci_remove_reserved_devices(), but that is not within
the scope of this series, and up to the pci maintainers

v1:
Enable CONTEXT_ANALYSYS for s390's pci code.

Static code checking for acquiring and releasing locks used to be done
with sparse. That was removed with [1] and replaced with a clang based
approach [2]. The new approach requires that each subsystem needs to be
explicitly enabled for checking.

Do that for s390's pci code. In order to avoid false positives the code
has to be slightly reworked, since conditionally acquiring and releasing
locks does not work with the checker (besides that this is sub optimal
coding style).

[1] 5b63d0ae94cc ("compiler-context-analysis: Remove Sparse support")
[2] 3269701cb256 ("compiler-context-analysis: Add infrastructure for Context Analysis with Clang")

Heiko Carstens (3):
s390/pci: Rework __zpci_event_error() to remove conditional locking
s390/pci: Rework __zpci_event_availability() to remove conditional locking
s390/pci: Enable CONTEXT_ANALYSIS

arch/s390/pci/Makefile | 2 +
arch/s390/pci/pci_event.c | 205 ++++++++++++++++++++------------------
2 files changed, 111 insertions(+), 96 deletions(-)

--
2.53.0