Since mark_lock() may now be passed more than one usage at once, make sure to expand the lock usage structure in order to report all of them while in verbose mode logging.
Signed-off-by: Frederic Weisbecker <[email protected]> Cc: Mauro Carvalho Chehab <[email protected]> Cc: Joel Fernandes <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Pavan Kondeti <[email protected]> Cc: Paul E . McKenney <[email protected]> Cc: David S . Miller <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Sebastian Andrzej Siewior <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> --- kernel/locking/lockdep.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index a369e7de3ade..a99fd5fade54 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -3217,7 +3217,11 @@ static int mark_lock(struct task_struct *curr, struct held_lock *this, * We must printk outside of the graph_lock: */ if (ret == 2) { - printk("\nmarked lock as {%s}:\n", usage_str[new_usage->bit]); + int bit; + + for_each_bit_nr(new_mask, bit) + printk("\nmarked lock as {%s}:\n", usage_str[bit]); + print_lock(this); print_irqtrace_events(curr); dump_stack(); -- 2.21.0

