| From: Josh Cartwright <josh.cartwright@ni.com> |
| Date: Wed, 28 Jan 2015 13:08:45 -0600 |
| Subject: lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals |
| |
| "lockdep: Selftest: Only do hardirq context test for raw spinlock" |
| disabled the execution of certain tests with PREEMPT_RT_FULL, but did |
| not prevent the tests from still being defined. This leads to warnings |
| like: |
| |
| ./linux/lib/locking-selftest.c:574:1: warning: 'irqsafe1_hard_rlock_12' defined but not used [-Wunused-function] |
| ./linux/lib/locking-selftest.c:574:1: warning: 'irqsafe1_hard_rlock_21' defined but not used [-Wunused-function] |
| ./linux/lib/locking-selftest.c:577:1: warning: 'irqsafe1_hard_wlock_12' defined but not used [-Wunused-function] |
| ./linux/lib/locking-selftest.c:577:1: warning: 'irqsafe1_hard_wlock_21' defined but not used [-Wunused-function] |
| ./linux/lib/locking-selftest.c:580:1: warning: 'irqsafe1_soft_spin_12' defined but not used [-Wunused-function] |
| ... |
| |
| Fixed by wrapping the test definitions in #ifndef CONFIG_PREEMPT_RT_FULL |
| conditionals. |
| |
| |
| Signed-off-by: Josh Cartwright <josh.cartwright@ni.com> |
| Signed-off-by: Xander Huff <xander.huff@ni.com> |
| Acked-by: Gratian Crisan <gratian.crisan@ni.com> |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| --- |
| lib/locking-selftest.c | 27 +++++++++++++++++++++++++++ |
| 1 file changed, 27 insertions(+) |
| |
| --- a/lib/locking-selftest.c |
| +++ b/lib/locking-selftest.c |
| @@ -590,6 +590,8 @@ GENERATE_TESTCASE(init_held_rsem) |
| #include "locking-selftest-spin-hardirq.h" |
| GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_spin) |
| |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| + |
| #include "locking-selftest-rlock-hardirq.h" |
| GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_rlock) |
| |
| @@ -605,9 +607,12 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_ |
| #include "locking-selftest-wlock-softirq.h" |
| GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_soft_wlock) |
| |
| +#endif |
| + |
| #undef E1 |
| #undef E2 |
| |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| /* |
| * Enabling hardirqs with a softirq-safe lock held: |
| */ |
| @@ -640,6 +645,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2A |
| #undef E1 |
| #undef E2 |
| |
| +#endif |
| + |
| /* |
| * Enabling irqs with an irq-safe lock held: |
| */ |
| @@ -663,6 +670,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2A |
| #include "locking-selftest-spin-hardirq.h" |
| GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_spin) |
| |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| + |
| #include "locking-selftest-rlock-hardirq.h" |
| GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_rlock) |
| |
| @@ -678,6 +687,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B |
| #include "locking-selftest-wlock-softirq.h" |
| GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_soft_wlock) |
| |
| +#endif |
| + |
| #undef E1 |
| #undef E2 |
| |
| @@ -709,6 +720,8 @@ GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B |
| #include "locking-selftest-spin-hardirq.h" |
| GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_spin) |
| |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| + |
| #include "locking-selftest-rlock-hardirq.h" |
| GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_rlock) |
| |
| @@ -724,6 +737,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_ |
| #include "locking-selftest-wlock-softirq.h" |
| GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_soft_wlock) |
| |
| +#endif |
| + |
| #undef E1 |
| #undef E2 |
| #undef E3 |
| @@ -757,6 +772,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_ |
| #include "locking-selftest-spin-hardirq.h" |
| GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_spin) |
| |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| + |
| #include "locking-selftest-rlock-hardirq.h" |
| GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_rlock) |
| |
| @@ -772,10 +789,14 @@ GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_ |
| #include "locking-selftest-wlock-softirq.h" |
| GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_soft_wlock) |
| |
| +#endif |
| + |
| #undef E1 |
| #undef E2 |
| #undef E3 |
| |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| + |
| /* |
| * read-lock / write-lock irq inversion. |
| * |
| @@ -838,6 +859,10 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_inver |
| #undef E2 |
| #undef E3 |
| |
| +#endif |
| + |
| +#ifndef CONFIG_PREEMPT_RT_FULL |
| + |
| /* |
| * read-lock / write-lock recursion that is actually safe. |
| */ |
| @@ -876,6 +901,8 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_read_ |
| #undef E2 |
| #undef E3 |
| |
| +#endif |
| + |
| /* |
| * read-lock / write-lock recursion that is unsafe. |
| */ |