From 7e0e46f1fe491985c103e77e1667ab6684729cbe Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Wed, 6 Dec 2006 20:38:44 -0800 Subject: [PATCH] --- yaml --- r: 42886 b: refs/heads/master c: 1c69d921ed9cc6593ad4f60c0f9951cb0d62b0b4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/rcupdate.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6646a58e8940..3137e2d74cba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a0efbb8795e8c5acb279d984b53d6af6ecdd00f +refs/heads/master: 1c69d921ed9cc6593ad4f60c0f9951cb0d62b0b4 diff --git a/trunk/kernel/rcupdate.c b/trunk/kernel/rcupdate.c index 26bb5ffe1ef1..3554b76da84c 100644 --- a/trunk/kernel/rcupdate.c +++ b/trunk/kernel/rcupdate.c @@ -235,12 +235,14 @@ static void rcu_do_batch(struct rcu_data *rdp) list = rdp->donelist; while (list) { - next = rdp->donelist = list->next; + next = list->next; + prefetch(next); list->func(list); list = next; if (++count >= rdp->blimit) break; } + rdp->donelist = list; local_irq_disable(); rdp->qlen -= count;