diff options
| author | NeilBrown <neilb@ownmail.net> | 2026-08-15 16:24:07 +1000 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2026-09-04 19:49:32 +1000 |
| commit | 4333ab90aaaea54f51af04025dc6f12f87e83f2d (patch) | |
| tree | a1ab63642341766cb468257019c083228371be4a /scripts/Makefile.thinlto | |
| parent | 58d27c41542be6c40edac4f91f35a1dd8bf0d2c2 (diff) | |
| download | linux-next-4333ab90aaaea54f51af04025dc6f12f87e83f2d.tar.gz linux-next-4333ab90aaaea54f51af04025dc6f12f87e83f2d.zip | |
rhashtable: use private lockdep class for all locks.
This patch builds on
Commit: 060d4e94b8d4 ("rhashtable: give each instance its own lockdep class")
to allow lockdep to see each rhashtable as unique with respect to all of
the locks, not just the ht->mutex.
This is needed if rhashtable is to be used tracepoint BPF which could
run while an rhashtable lock (in a different table) is held - see Link
below.
Rather then adding extra keys for the other locks, we use distinct
sub-classes for the different locks.
rhashtable->lock uses class 0
rhashtable->mutex uses class 1
bucket bitlocks, which are the only ones that are ever nested, use
classes 2 and 3.
Currently rht_lock() and rht_lock_nested() are quite separate code
despite the near-identical function. This patch moves rht_lock() to
after rht_lock_nested(), and simply calls that other function with a
nesting level of zero.
Link: https://lore.kernel.org/all/20260801-fix-rhashtable-bucket-lockdep-v1-1-15a0f8ae094c@gmail.com/
Closes: https://syzkaller.appspot.com/bug?extid=ef8d17bae14efb960935
Tested-by: quanyeyang <quanyeyang@proton.me>
Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
