Lock acquire and release checking used to be done with Sparse. That support was
removed [1] and replaced with Clang context analysis [2].
Note that enabling this caught a real locking rcu bug in arch/powerpc/mm
(Patch-1). Note, more invasive checkers to check what each lock protects
is deferred for later enablement.
This is based on top of previous powerpc/powernv,pseries Clang context analysis
enablement series [3].
The series was build tested with LLVM/Clang 23.x
[1] 5b63d0ae94cc ("compiler-context-analysis: Remove Sparse support")
[2] 3269701cb256 ("compiler-context-analysis: Add infrastructure for Context
Analysis with Clang")
[3]:
https://lore.kernel.org/linuxppc-dev/[email protected]/
Ritesh Harjani (IBM) (6):
powerpc/mm/book3s64: unlock RCU before returning from mm_iommu_is_devmem()
powerpc/mm/book3s64: Rework tlbie() to remove conditional locking
powerpc/mm/book3s64: Rework native_flush_hash_range() to remove conditional
locking
powerpc/mm/book3s64: Annotate the subpage-protection PTE lock
powerpc/mm: Rework nohash TLB broadcast locking
powerpc/mm: Enable context analysis
arch/powerpc/mm/Makefile | 2 +
arch/powerpc/mm/book3s32/Makefile | 2 +
arch/powerpc/mm/book3s64/Makefile | 2 +
arch/powerpc/mm/book3s64/hash_native.c | 122 +++++++++++++++---------
arch/powerpc/mm/book3s64/iommu_api.c | 6 +-
arch/powerpc/mm/book3s64/subpage_prot.c | 2 +
arch/powerpc/mm/nohash/Makefile | 2 +
arch/powerpc/mm/nohash/mmu_context.c | 1 +
arch/powerpc/mm/nohash/tlb.c | 8 +-
9 files changed, 98 insertions(+), 49 deletions(-)
--
2.39.5