Since zap_class() removes items from the all_lock_classes list and the classhash_table, protect all zap_class() calls with the graph lock.
Cc: Peter Zijlstra <pet...@infradead.org> Cc: Waiman Long <long...@redhat.com> Cc: Johannes Berg <johan...@sipsolutions.net> Signed-off-by: Bart Van Assche <bvanass...@acm.org> --- kernel/locking/lockdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index 346b5a1fd062..e78623819184 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -4229,6 +4229,7 @@ void lockdep_reset_lock(struct lockdep_map *lock) int j, locked; raw_local_irq_save(flags); + locked = graph_lock(); /* * Remove all classes this lock might have: @@ -4245,7 +4246,6 @@ void lockdep_reset_lock(struct lockdep_map *lock) * Debug check: in the end all mapped classes should * be gone. */ - locked = graph_lock(); if (unlikely(lock_class_cache_is_registered(lock))) { if (debug_locks_off_graph_unlock()) { /* -- 2.20.0.rc1.387.gf8505762e3-goog