On Tue, Jul 29, 2014 at 02:53:19PM -0400, Waiman Long wrote: > The queued rwlock does not support the use of recursive read-lock in > the process context. With changes in the lockdep code to check and > disallow recursive read-lock, it is also necessary for the locking > selftest to be updated to change the process context recursive read > locking results from SUCCESS to FAILURE for rwlock. > > Signed-off-by: Waiman Long > Signed-off-by: Peter Zijlstra > --- > lib/locking-selftest.c | 12 ++++++------ > 1 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c > index 872a15a..9a33688 100644 > --- a/lib/locking-selftest.c > +++ b/lib/locking-selftest.c > @@ -267,19 +267,19 @@ GENERATE_TESTCASE(AA_rsem) > #undef E > > /* > - * Special-case for read-locking, they are > + * Special-case for read-locking, they are not > * allowed to recurse on the same lock class: > */ > static void rlock_AA1(void) > { > RL(X1); > - RL(X1); // this one should NOT fail > + RL(X1); // this one should fail > } > > static void rlock_AA1B(void) > { > RL(X1); > - RL(X2); // this one should NOT fail > + RL(X2); // this one should fail > } Maybe I wasn't clear; but I meant you should extend the lock tests to cover the full qrwlock semantics. That means we also need tests like: RL(X1); IRQ_ENTER(); RL(X2); IRQ_EXIT(); To fully validate that in_interrupt exception to fairness etc..