summaryrefslogtreecommitdiffstats
path: root/include/linux/lockdep.h
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2019-02-14 18:00:44 -0500
committerIngo Molnar <mingo@kernel.org>2019-02-28 01:55:43 -0500
commitcdc84d794947b5431c0a6916c303aee7114819d2 (patch)
treeed685700c082db656b3ae7db4fc8977b451eb709 /include/linux/lockdep.h
parent956f3563a8387beb7758f2e8ee483639ef91afc6 (diff)
locking/lockdep: Make it easy to detect whether or not inside a selftest
The patch that frees unused lock classes will modify the behavior of lockdep_free_key_range() and lockdep_reset_lock() depending on whether or not these functions are called from the context of the lockdep selftests. Hence make it easy to detect whether or not lockdep code is called from the context of a lockdep selftest. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Johannes Berg <johannes@sipsolutions.net> 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: Waiman Long <longman@redhat.com> Cc: Will Deacon <will.deacon@arm.com> Cc: johannes.berg@intel.com Cc: tj@kernel.org Link: https://lkml.kernel.org/r/20190214230058.196511-10-bvanassche@acm.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/lockdep.h')
-rw-r--r--include/linux/lockdep.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index b5e6bfe0ae4a..66eee1ba0f2a 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -265,6 +265,7 @@ extern void lockdep_reset(void);
265extern void lockdep_reset_lock(struct lockdep_map *lock); 265extern void lockdep_reset_lock(struct lockdep_map *lock);
266extern void lockdep_free_key_range(void *start, unsigned long size); 266extern void lockdep_free_key_range(void *start, unsigned long size);
267extern asmlinkage void lockdep_sys_exit(void); 267extern asmlinkage void lockdep_sys_exit(void);
268extern void lockdep_set_selftest_task(struct task_struct *task);
268 269
269extern void lockdep_off(void); 270extern void lockdep_off(void);
270extern void lockdep_on(void); 271extern void lockdep_on(void);
@@ -395,6 +396,10 @@ static inline void lockdep_on(void)
395{ 396{
396} 397}
397 398
399static inline void lockdep_set_selftest_task(struct task_struct *task)
400{
401}
402
398# define lock_acquire(l, s, t, r, c, n, i) do { } while (0) 403# define lock_acquire(l, s, t, r, c, n, i) do { } while (0)
399# define lock_release(l, n, i) do { } while (0) 404# define lock_release(l, n, i) do { } while (0)
400# define lock_downgrade(l, i) do { } while (0) 405# define lock_downgrade(l, i) do { } while (0)