locking/lockdep: Use lockdep_init_task for task initiation consistently
Despite that there is a lockdep_init_task() which does nothing, lockdep initiates tasks by assigning lockdep fields and does so inconsistently. Fix this by using lockdep_init_task(). Signed-off-by: Yuyang Du <duyuyang@gmail.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: bvanassche@acm.org Cc: frederic@kernel.org Cc: ming.lei@redhat.com Cc: will.deacon@arm.com Link: https://lkml.kernel.org/r/20190506081939.74287-8-duyuyang@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Esse commit está contido em:
@@ -359,6 +359,13 @@ static inline u64 iterate_chain_key(u64 key, u32 idx)
|
||||
return k0 | (u64)k1 << 32;
|
||||
}
|
||||
|
||||
void lockdep_init_task(struct task_struct *task)
|
||||
{
|
||||
task->lockdep_depth = 0; /* no locks held yet */
|
||||
task->curr_chain_key = 0;
|
||||
task->lockdep_recursion = 0;
|
||||
}
|
||||
|
||||
void lockdep_off(void)
|
||||
{
|
||||
current->lockdep_recursion++;
|
||||
@@ -4589,9 +4596,7 @@ void lockdep_reset(void)
|
||||
int i;
|
||||
|
||||
raw_local_irq_save(flags);
|
||||
current->curr_chain_key = 0;
|
||||
current->lockdep_depth = 0;
|
||||
current->lockdep_recursion = 0;
|
||||
lockdep_init_task(current);
|
||||
memset(current->held_locks, 0, MAX_LOCK_DEPTH*sizeof(struct held_lock));
|
||||
nr_hardirq_chains = 0;
|
||||
nr_softirq_chains = 0;
|
||||
|
Referência em uma nova issue
Block a user