[PATCH] rcu: don't use __this_cpu_* from preemptible context

From: Sasha Levin
Date: Sun Dec 28 2014 - 11:50:16 EST


Commit "rcu: Make cond_resched_rcu_qs() apply to normal RCU flavors" has added
debug code which tries to read from __this_cpu in a preemptible code, which
doesn't work too well.

Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
---
kernel/rcu/tree_trace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
index a9b79ca..fbb6240 100644
--- a/kernel/rcu/tree_trace.c
+++ b/kernel/rcu/tree_trace.c
@@ -122,7 +122,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
cpu_is_offline(rdp->cpu) ? '!' : ' ',
ulong2long(rdp->completed), ulong2long(rdp->gpnum),
rdp->passed_quiesce,
- rdp->rcu_qs_ctr_snap == __this_cpu_read(rcu_qs_ctr),
+ rdp->rcu_qs_ctr_snap == per_cpu(rcu_qs_ctr, rdp->cpu),
rdp->qs_pending);
seq_printf(m, " dt=%d/%llx/%d df=%lu",
atomic_read(&rdp->dynticks->dynticks),
--
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/