diff options
| author | Paul Mackerras <paulus@samba.org> | 2006-09-14 07:07:18 +1000 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2006-09-14 07:07:18 +1000 |
| commit | c547fc28ab3e8716076fdaf4bd0260c5d63a18f7 (patch) | |
| tree | 34af1fa64a63618660187ae58ad182665a1861ef /kernel/rcupdate.c | |
| parent | 3dd836a56de0d4f049438412959b905e1db4666e (diff) | |
| parent | 63b98080daa35f0d682db04f4fb7ada010888752 (diff) | |
Merge branch 'linux-2.6'
Diffstat (limited to 'kernel/rcupdate.c')
| -rw-r--r-- | kernel/rcupdate.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 436ab35f6fa7..523e46483b99 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c @@ -241,12 +241,16 @@ static void rcu_do_batch(struct rcu_data *rdp) next = rdp->donelist = list->next; list->func(list); list = next; - rdp->qlen--; if (++count >= rdp->blimit) break; } + + local_irq_disable(); + rdp->qlen -= count; + local_irq_enable(); if (rdp->blimit == INT_MAX && rdp->qlen <= qlowmark) rdp->blimit = blimit; + if (!rdp->donelist) rdp->donetail = &rdp->donelist; else |
