[PATCH 00/18] maple_tree: lock checking and clean ups
From: Liam R. Howlett (Oracle)
Date: Mon Jun 29 2026 - 10:59:42 EST
The goals of this series are:
1. Lock issue detection
A number of syzbot reports are incorrectly pointing to the mm exit as
a source of the locking error. The first three patches attempt to
help users detect errors in their locking - but they still have to use
LOCKDEP. I guess it's still down to hope and prayers.
2. Documentation fixes
The documentation was lacking clarity, there are updates to try and
help the users, especially around the erase() cases.
3. Two benign issues
The cyclic allocator may have a race, although no in-kernel user can
hit it.
The erase functions may cause allocation issues if used with the
incorrect locking type, but none are present in-tree.
Beyond these goals there are some test fixes, some general speed-up
patches targeting extra work and cycles, and dropping dead code.
Liam R. Howlett (Oracle) (18):
maple_tree: Add rcu locking check when LOCKDEP is enabled
locking/lockdep: Add sequence counter to held_lock
maple_tree: Add write lock checking with lockdep sequence numbers
maple_tree: Documentation fix
maple_tree: Drop dead code from mas_extend_spanning_null()
maple_tree: Drop MAPLE_ALLOC_SLOTS
maple_tree: Clarify comments on mas_nomem()
maple_tree: Use prefetched value in mas_wr_store_type()
maple_tree: Optimise mas_wr_node_store() when not in rcu mode
maple_tree: micro optimisation of mas_wr_store_type()
maple_tree: Add bulk parent set helper
maple_tree: Catch race in mas_alloc_cyclic()
maple_tree: Document that erase may use GFP_KERNEL for allocations
maple_tree: WARN_ON_ONCE when allocations fail
maple_tree: Document erase and allocations better
maple_tree: Change two GFP flags in tests
maple_tree: Fix argument name in header
maple_tree: Avoid extra gap calculation
Documentation/core-api/maple_tree.rst | 21 +-
include/linux/lockdep.h | 3 +
include/linux/lockdep_types.h | 3 +-
include/linux/maple_tree.h | 10 +-
include/linux/sched.h | 1 +
kernel/locking/lockdep.c | 49 ++++-
lib/maple_tree.c | 280 ++++++++++++++++++++------
tools/testing/radix-tree/maple.c | 4 +-
8 files changed, 295 insertions(+), 76 deletions(-)
--
2.47.3