diff options
author | Yuyang Du <duyuyang@gmail.com> | 2019-07-09 12:15:22 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-07-13 11:24:53 +0200 |
commit | 68d41d8c94a31dfb8233ab90b9baf41a2ed2da68 (patch) | |
tree | 4f57eca5c312139e1ac9ce039a412e0920838e89 /kernel/ucount.c | |
parent | Merge tag 'driver-core-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/... (diff) | |
download | linux-68d41d8c94a31dfb8233ab90b9baf41a2ed2da68.tar.xz linux-68d41d8c94a31dfb8233ab90b9baf41a2ed2da68.zip |
locking/lockdep: Fix lock used or unused stats error
The stats variable nr_unused_locks is incremented every time a new lock
class is register and decremented when the lock is first used in
__lock_acquire(). And after all, it is shown and checked in lockdep_stats.
However, under configurations that either CONFIG_TRACE_IRQFLAGS or
CONFIG_PROVE_LOCKING is not defined:
The commit:
091806515124b20 ("locking/lockdep: Consolidate lock usage bit initialization")
missed marking the LOCK_USED flag at IRQ usage initialization because
as mark_usage() is not called. And the commit:
886532aee3cd42d ("locking/lockdep: Move mark_lock() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING")
further made mark_lock() not defined such that the LOCK_USED cannot be
marked at all when the lock is first acquired.
As a result, we fix this by not showing and checking the stats under such
configurations for lockdep_stats.
Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Yuyang Du <duyuyang@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: arnd@arndb.de
Cc: frederic@kernel.org
Link: https://lkml.kernel.org/r/20190709101522.9117-1-duyuyang@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/ucount.c')
0 files changed, 0 insertions, 0 deletions