diff options
author | Oleg Nesterov <oleg@redhat.com> | 2014-01-20 13:20:06 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-02-09 15:18:54 -0500 |
commit | fb9edbe98493fcd9df66de926ae9157cbe0e4dcd (patch) | |
tree | 9fc6c5acfcd5c99bd9cf13a177ea3fd0b794cb3f /drivers/tty/tty_ldsem.c | |
parent | ddf1d169c0a489d498c1799a7043904a43b0c159 (diff) |
lockdep: Make held_lock->check and "int check" argument bool
The "int check" argument of lock_acquire() and held_lock->check are
misleading. This is actually a boolean: 2 means "true", everything
else is "false".
And there is no need to pass 1 or 0 to lock_acquire() depending on
CONFIG_PROVE_LOCKING, __lock_acquire() checks prove_locking at the
start and clears "check" if !CONFIG_PROVE_LOCKING.
Note: probably we can simply kill this member/arg. The only explicit
user of check => 0 is rcu_lock_acquire(), perhaps we can change it to
use lock_acquire(trylock =>, read => 2). __lockdep_no_validate means
check => 0 implicitly, but we can change validate_chain() to check
hlock->instance->key instead. Not to mention it would be nice to get
rid of lockdep_set_novalidate_class().
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Dave Jones <davej@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20140120182006.GA26495@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/tty/tty_ldsem.c')
-rw-r--r-- | drivers/tty/tty_ldsem.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/tty/tty_ldsem.c b/drivers/tty/tty_ldsem.c index d8a55e87877f..0ffb0cbe2823 100644 --- a/drivers/tty/tty_ldsem.c +++ b/drivers/tty/tty_ldsem.c | |||
@@ -39,17 +39,10 @@ | |||
39 | lock_acquire(&(l)->dep_map, s, t, r, c, n, i) | 39 | lock_acquire(&(l)->dep_map, s, t, r, c, n, i) |
40 | # define __rel(l, n, i) \ | 40 | # define __rel(l, n, i) \ |
41 | lock_release(&(l)->dep_map, n, i) | 41 | lock_release(&(l)->dep_map, n, i) |
42 | # ifdef CONFIG_PROVE_LOCKING | 42 | #define lockdep_acquire(l, s, t, i) __acq(l, s, t, 0, 1, NULL, i) |
43 | # define lockdep_acquire(l, s, t, i) __acq(l, s, t, 0, 2, NULL, i) | 43 | #define lockdep_acquire_nest(l, s, t, n, i) __acq(l, s, t, 0, 1, n, i) |
44 | # define lockdep_acquire_nest(l, s, t, n, i) __acq(l, s, t, 0, 2, n, i) | 44 | #define lockdep_acquire_read(l, s, t, i) __acq(l, s, t, 1, 1, NULL, i) |
45 | # define lockdep_acquire_read(l, s, t, i) __acq(l, s, t, 1, 2, NULL, i) | 45 | #define lockdep_release(l, n, i) __rel(l, n, i) |
46 | # define lockdep_release(l, n, i) __rel(l, n, i) | ||
47 | # else | ||
48 | # define lockdep_acquire(l, s, t, i) __acq(l, s, t, 0, 1, NULL, i) | ||
49 | # define lockdep_acquire_nest(l, s, t, n, i) __acq(l, s, t, 0, 1, n, i) | ||
50 | # define lockdep_acquire_read(l, s, t, i) __acq(l, s, t, 1, 1, NULL, i) | ||
51 | # define lockdep_release(l, n, i) __rel(l, n, i) | ||
52 | # endif | ||
53 | #else | 46 | #else |
54 | # define lockdep_acquire(l, s, t, i) do { } while (0) | 47 | # define lockdep_acquire(l, s, t, i) do { } while (0) |
55 | # define lockdep_acquire_nest(l, s, t, n, i) do { } while (0) | 48 | # define lockdep_acquire_nest(l, s, t, n, i) do { } while (0) |