mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
locking/local_lock: Expose dep_map in local_trylock_t.
lockdep_is_held() macro assumes that "struct lockdep_map dep_map;" is a top level field of any lock that participates in LOCKDEP. Make it so for local_trylock_t. Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Reviewed-by: Harry Yoo <harry.yoo@oracle.com> Reviewed-by: Suren Baghdasaryan <surenb@google.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
parent
1b237f190e
commit
212b0f07cf
|
|
@ -17,7 +17,10 @@ typedef struct {
|
|||
|
||||
/* local_trylock() and local_trylock_irqsave() only work with local_trylock_t */
|
||||
typedef struct {
|
||||
local_lock_t llock;
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
struct lockdep_map dep_map;
|
||||
struct task_struct *owner;
|
||||
#endif
|
||||
u8 acquired;
|
||||
} local_trylock_t;
|
||||
|
||||
|
|
@ -31,7 +34,7 @@ typedef struct {
|
|||
.owner = NULL,
|
||||
|
||||
# define LOCAL_TRYLOCK_DEBUG_INIT(lockname) \
|
||||
.llock = { LOCAL_LOCK_DEBUG_INIT((lockname).llock) },
|
||||
LOCAL_LOCK_DEBUG_INIT(lockname)
|
||||
|
||||
static inline void local_lock_acquire(local_lock_t *l)
|
||||
{
|
||||
|
|
@ -81,7 +84,7 @@ do { \
|
|||
local_lock_debug_init(lock); \
|
||||
} while (0)
|
||||
|
||||
#define __local_trylock_init(lock) __local_lock_init(lock.llock)
|
||||
#define __local_trylock_init(lock) __local_lock_init((local_lock_t *)lock)
|
||||
|
||||
#define __spinlock_nested_bh_init(lock) \
|
||||
do { \
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user