ia64/xen-unstable

view patches/linux-2.6.12/rcu-nohz.patch @ 7908:0970a2fdbee9

make_page_readonly() must flush unused kmaps when handling
a high-memory page. Otherwise stale writable mappings may
persist. This fixes a corner case for alloc_ldt (which can
vmalloc an LDT and hence use highmem pages).

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Fri Nov 18 17:50:25 2005 +0100 (2005-11-18)
parents 06d84bf87159
children
line source
1 diff -ur linux-2.6.11/kernel/rcupdate.c linux-2.6.11-rcu/kernel/rcupdate.c
2 --- linux-2.6.11/kernel/rcupdate.c 2005-05-30 10:51:41 +01:00
3 +++ linux-2.6.11-rcu/kernel/rcupdate.c 2005-05-30 10:53:53 +01:00
4 @@ -202,8 +202,11 @@
5 */
6 static void cpu_quiet(int cpu, struct rcu_ctrlblk *rcp, struct rcu_state *rsp)
7 {
8 + cpumask_t mask;
9 +
10 cpu_clear(cpu, rsp->cpumask);
11 - if (cpus_empty(rsp->cpumask)) {
12 + cpus_andnot(mask, rsp->cpumask, nohz_cpu_mask);
13 + if (cpus_empty(mask)) {
14 /* batch completed ! */
15 rcp->completed = rcp->cur;
16 rcu_start_batch(rcp, rsp, 0);