This is a note to let you know that I've just added the patch titled

    ARM64: smp: Fix suspicious RCU usage with ipi tracepoints

to the 4.1-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     arm64-smp-fix-suspicious-rcu-usage-with-ipi-tracepoints.patch
and it can be found in the queue-4.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From be081d9bf3e163a9ed1ca2f0f14f08424c7f9016 Mon Sep 17 00:00:00 2001
From: Stephen Boyd <[email protected]>
Date: Wed, 24 Jun 2015 13:14:18 -0700
Subject: ARM64: smp: Fix suspicious RCU usage with ipi tracepoints

From: Stephen Boyd <[email protected]>

commit be081d9bf3e163a9ed1ca2f0f14f08424c7f9016 upstream.

John Stultz reported an RCU splat on ARM with ipi trace events
enabled. It looks like the same problem exists on ARM64.

At this point in the IPI handling path we haven't called
irq_enter() yet, so RCU doesn't know that we're about to exit
idle and properly warns that we're using RCU from an idle CPU.
Use trace_ipi_entry_rcuidle() instead of trace_ipi_entry() so
that RCU is informed about our exit from idle.

Cc: John Stultz <[email protected]>
Cc: Nicolas Pitre <[email protected]>
Acked-by: Steven Rostedt <[email protected]>
Reviewed-by: Paul E. McKenney <[email protected]>
Fixes: 45ed695ac10a ("ARM64: add IPI tracepoints")
Signed-off-by: Stephen Boyd <[email protected]>
Signed-off-by: Catalin Marinas <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 arch/arm64/kernel/smp.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -569,7 +569,7 @@ void handle_IPI(int ipinr, struct pt_reg
        struct pt_regs *old_regs = set_irq_regs(regs);
 
        if ((unsigned)ipinr < NR_IPI) {
-               trace_ipi_entry(ipi_types[ipinr]);
+               trace_ipi_entry_rcuidle(ipi_types[ipinr]);
                __inc_irq_stat(cpu, ipi_irqs[ipinr]);
        }
 
@@ -612,7 +612,7 @@ void handle_IPI(int ipinr, struct pt_reg
        }
 
        if ((unsigned)ipinr < NR_IPI)
-               trace_ipi_exit(ipi_types[ipinr]);
+               trace_ipi_exit_rcuidle(ipi_types[ipinr]);
        set_irq_regs(old_regs);
 }
 


Patches currently in stable-queue which might be from [email protected] are

queue-4.1/arm-8393-1-smp-fix-suspicious-rcu-usage-with-ipi-tracepoints.patch
queue-4.1/clk-qcom-use-parent-rate-when-set-rate-to-pixel-rcg-clock.patch
queue-4.1/clk-fix-json-output-in-debugfs.patch
queue-4.1/clk-ti-dra7-atl-clock-fix-possible-err_ptr-dereference.patch
queue-4.1/arm64-smp-fix-suspicious-rcu-usage-with-ipi-tracepoints.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to