diff options
| author | Mark Brown <broonie@kernel.org> | 2026-09-14 15:21:19 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-09-14 15:21:19 +0100 |
| commit | 038473b5c130912fcb87db0ab26b217196235e8e (patch) | |
| tree | 38379bd8aa531ea5a39d4a498afcd8f6b32da0c8 /include/linux | |
| parent | 47dd4edc1519e823b176e01fe630e54e06c9cfc8 (diff) | |
| parent | 9e06d371730b841ad8fe79ebfccf0def9470201f (diff) | |
| download | linux-next-038473b5c130912fcb87db0ab26b217196235e8e.tar.gz linux-next-038473b5c130912fcb87db0ab26b217196235e8e.zip | |
Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/rhashtable-types.h | 3 | ||||
| -rw-r--r-- | include/linux/rhashtable.h | 22 |
2 files changed, 12 insertions, 13 deletions
diff --git a/include/linux/rhashtable-types.h b/include/linux/rhashtable-types.h index 57c11ec9dc64..0e1b172a4f6c 100644 --- a/include/linux/rhashtable-types.h +++ b/include/linux/rhashtable-types.h @@ -97,6 +97,9 @@ struct rhashtable { #ifdef CONFIG_MEM_ALLOC_PROFILING struct alloc_tag *alloc_tag; #endif +#ifdef CONFIG_LOCKDEP + struct lock_class_key *lockdep_key; +#endif }; /** diff --git a/include/linux/rhashtable.h b/include/linux/rhashtable.h index 57a2a29bef0e..6c5e6d9accba 100644 --- a/include/linux/rhashtable.h +++ b/include/linux/rhashtable.h @@ -319,18 +319,6 @@ static inline struct rhash_lock_head __rcu **rht_bucket_insert( * When we write to a bucket without unlocking, we use rht_assign_locked(). */ -static inline unsigned long rht_lock(struct bucket_table *tbl, - struct rhash_lock_head __rcu **bkt) - __acquires(__bitlock(0, bkt)) -{ - unsigned long flags; - - local_irq_save(flags); - bit_spin_lock(0, (unsigned long *)bkt); - lock_map_acquire(&tbl->dep_map); - return flags; -} - static inline unsigned long rht_lock_nested(struct bucket_table *tbl, struct rhash_lock_head __rcu **bucket, unsigned int subclass) @@ -340,10 +328,18 @@ static inline unsigned long rht_lock_nested(struct bucket_table *tbl, local_irq_save(flags); bit_spin_lock(0, (unsigned long *)bucket); - lock_acquire_exclusive(&tbl->dep_map, subclass, 0, NULL, _THIS_IP_); + /* subclass 0 is used for ->lock and 1 for ->mutex. 2+ for bitlocks */ + lock_acquire_exclusive(&tbl->dep_map, subclass+2, 0, NULL, _THIS_IP_); return flags; } +static inline unsigned long rht_lock(struct bucket_table *tbl, + struct rhash_lock_head __rcu **bkt) + __acquires(__bitlock(0, bkt)) +{ + return rht_lock_nested(tbl, bkt, 0); +} + static inline void rht_unlock(struct bucket_table *tbl, struct rhash_lock_head __rcu **bkt, unsigned long flags) |
