[PATCH v2] lockdep: fix warning: print_lock_trace defined but not used

From: john . hubbard
Date: Sun Jun 09 2019 - 20:14:08 EST


From: John Hubbard <jhubbard@xxxxxxxxxx>

Commit 0d2cc3b34532 ("locking/lockdep: Move valid_state() inside
CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING") moved the only usage of
print_lock_trace() that was originally outside of the CONFIG_PROVE_LOCKING
case. It moved that usage into a different case: CONFIG_PROVE_LOCKING &&
CONFIG_TRACE_IRQFLAGS. That leaves things not symmetrical, and as a result,
the following warning fires on my build, when I have

!CONFIG_TRACE_IRQFLAGS && !CONFIG_PROVE_LOCKING

set:

kernel/locking/lockdep.c:2821:13: warning: âprint_lock_traceâ defined
but not used [-Wunused-function]

Fix this by annotating print_lock_trace() with "__maybe_unused".
Thanks to Paul E. McKenney for suggesting this less intrusive fix,
as compared to adding more ifdef noise.

Fixes: 0d2cc3b34532 ("locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING")

Cc: Frederic Weisbecker <frederic@xxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
---
kernel/locking/lockdep.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index c47788fa85f9..2726dafdb29b 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -2818,7 +2818,8 @@ static inline int validate_chain(struct task_struct *curr,
return 1;
}

-static void print_lock_trace(struct lock_trace *trace, unsigned int spaces)
+static void __maybe_unused print_lock_trace(struct lock_trace *trace,
+ unsigned int spaces)
{
}
#endif
--
2.21.0