summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo2009-05-25 05:01:59 +0200
committerIngo Molnar2009-05-25 05:37:55 +0200
commit71c9d8b68b299bef614afc7907393564a9f1476f (patch)
treead92b85c7e8e6542391e5dbef4be71efc4d2a20d
parentx86: cpa_flush_array wbinvd should be done on all CPUs (diff)
downloadkernel-qcow2-linux-71c9d8b68b299bef614afc7907393564a9f1476f.tar.gz
kernel-qcow2-linux-71c9d8b68b299bef614afc7907393564a9f1476f.tar.xz
kernel-qcow2-linux-71c9d8b68b299bef614afc7907393564a9f1476f.zip
x86: Remove remap percpu allocator for the time being
Remap percpu allocator has subtle bug when combined with page attribute changing. Remap percpu allocator aliases PMD pages for the first chunk and as pageattr doesn't know about the alias it ends up updating page attributes of the original mapping thus leaving the alises in inconsistent state which might lead to subtle data corruption. Please read the following threads for more information: http://thread.gmane.org/gmane.linux.kernel/835783 The following is the proposed fix which teaches pageattr about percpu aliases. http://thread.gmane.org/gmane.linux.kernel/837157 However, the above changes are deemed too pervasive for upstream inclusion for 2.6.30 release, so this patch essentially disables the remap allocator for the time being. Signed-off-by: Tejun Heo <tj@kernel.org> LKML-Reference: <4A1A0A27.4050301@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/setup_percpu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 3a97a4cf1872..8f0e13be36b3 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -160,8 +160,10 @@ static ssize_t __init setup_pcpu_remap(size_t static_size)
/*
* If large page isn't supported, there's no benefit in doing
* this. Also, on non-NUMA, embedding is better.
+ *
+ * NOTE: disabled for now.
*/
- if (!cpu_has_pse || !pcpu_need_numa())
+ if (true || !cpu_has_pse || !pcpu_need_numa())
return -EINVAL;
/*