[PATCH RT 1/2] lockdep: Fix backport of "Correctly annotate hardirq context in irq_exit()"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



3.2.63-rt93-rc1 stable review patch.
If anyone has any objections, please let me know.

------------------

From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx>

The backport of f1a83e652bed "lockdep: Correctly annotate hardirq context
in irq_exit()" to v3.2.53-rt76 wasn't correct because v3.2-rt had two
calls to invoke_softirq(). One when __ARCH_IRQ_EXIT_IRQS_DISABLED is defined
and another when it is not defined. v3.14 which introduced this change
only had one version.

When I backported this change, I didn't see the two places and only one
was added. Unfortunately, it was the one that x86 does not use, and this
caused a lockdep splat on one of my tests. It only affected the -rt patch
when PREEMPT_RT_FULL was not set, so I did not spend much time looking to
see what broke.

Well, I finally spent a little time and found the cause, and this was
a simple fix. Now my all my tests pass on the v3.2-rt kernel, even the
one where I test CONFIG_PREEMPT_RT_FULL not set.

Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
---
 kernel/softirq.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/kernel/softirq.c b/kernel/softirq.c
index 7d882ccfa22b..56d30853345d 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -637,9 +637,10 @@ static inline void invoke_softirq(void)
 static inline void invoke_softirq(void)
 {
 #ifndef CONFIG_PREEMPT_RT_FULL
-	if (!force_irqthreads)
+	if (!force_irqthreads) {
+		lockdep_softirq_from_hardirq();
 		do_softirq();
-	else {
+	} else {
 		__local_bh_disable((unsigned long)__builtin_return_address(0),
 				SOFTIRQ_OFFSET);
 		wakeup_softirqd();
-- 
2.1.1


--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux