| Subject: lockdep: Selftest: Only do hardirq context test for raw spinlock | 
 | From: Yong Zhang <yong.zhang0@gmail.com> | 
 | Date: Mon, 16 Apr 2012 15:01:56 +0800 | 
 |  | 
 | From: Yong Zhang <yong.zhang@windriver.com> | 
 |  | 
 | On -rt there is no softirq context any more and rwlock is sleepable, | 
 | disable softirq context test and rwlock+irq test. | 
 |  | 
 | Signed-off-by: Yong Zhang <yong.zhang0@gmail.com> | 
 | Cc: Yong Zhang <yong.zhang@windriver.com> | 
 | Link: http://lkml.kernel.org/r/1334559716-18447-3-git-send-email-yong.zhang0@gmail.com | 
 | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> | 
 | --- | 
 |  lib/locking-selftest.c |   23 +++++++++++++++++++++++ | 
 |  1 file changed, 23 insertions(+) | 
 |  | 
 | Index: linux-stable/lib/locking-selftest.c | 
 | =================================================================== | 
 | --- linux-stable.orig/lib/locking-selftest.c | 
 | +++ linux-stable/lib/locking-selftest.c | 
 | @@ -1175,6 +1175,7 @@ void locking_selftest(void) | 
 |   | 
 |  	printk("  --------------------------------------------------------------------------\n"); | 
 |   | 
 | +#ifndef CONFIG_PREEMPT_RT_FULL | 
 |  	/* | 
 |  	 * irq-context testcases: | 
 |  	 */ | 
 | @@ -1187,6 +1188,28 @@ void locking_selftest(void) | 
 |   | 
 |  	DO_TESTCASE_6x2("irq read-recursion", irq_read_recursion); | 
 |  //	DO_TESTCASE_6x2B("irq read-recursion #2", irq_read_recursion2); | 
 | +#else | 
 | +	/* On -rt, we only do hardirq context test for raw spinlock */ | 
 | +	DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 12); | 
 | +	DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 21); | 
 | + | 
 | +	DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 12); | 
 | +	DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 21); | 
 | + | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 123); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 132); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 213); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 231); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 312); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 321); | 
 | + | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 123); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 132); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 213); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 231); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 312); | 
 | +	DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 321); | 
 | +#endif | 
 |   | 
 |  	if (unexpected_testcase_failures) { | 
 |  		printk("-----------------------------------------------------------------\n"); |