[PATCH] poison invalid cpus

STALE7492d

2 messages, 2 authors, 2006-02-11 · open the first message on its own page

[PATCH] poison invalid cpus

From: Olaf Hering <hidden>
Date: 2006-02-10 14:00:16

from Anton Blanchard [off-list ref]
Novell bug145459

Ensure that per cpu access to !possible cpus causes a fault instead of silent
corruption.

Signed-off-by: Olaf Hering <redacted>

 arch/powerpc/kernel/setup_64.c |    8 ++++++++
 1 files changed, 8 insertions(+)

Index: linux-2.6.16-rc1-git3/arch/powerpc/kernel/setup_64.c
===================================================================
--- linux-2.6.16-rc1-git3.orig/arch/powerpc/kernel/setup_64.c
+++ linux-2.6.16-rc1-git3/arch/powerpc/kernel/setup_64.c
@@ -670,6 +670,14 @@ void __init setup_per_cpu_areas(void)
 		size = PERCPU_ENOUGH_ROOM;
 #endif
 
+	/*
+	 * Poison invalid cpus, with lots of high bits set this should
+	 * always fault
+	 */
+	for (i = 0; i < NR_CPUS; i++) {
+		paca[i].data_offset = 0xeeeeeeeeeeeeeeeeULL;
+	}
+
 	for_each_cpu(i) {
 		ptr = alloc_bootmem_node(NODE_DATA(cpu_to_node(i)), size);
 		if (!ptr)
-- 
short story of a lazy sysadmin:
 alias appserv=wotan

[PATCH] ppc64: poison invalid cpus

From: Anton Blanchard <hidden>
Date: 2006-02-11 11:55:09

Ensure that per cpu access to !possible cpus causes a fault instead of silent
corruption.

Signed-off-by: Anton Blanchard <redacted>
Signed-off-by: Olaf Hering <redacted>
---

Thanks Olaf, I had forgotten to send it out.

Index: linux-2.6.16-rc1-git3/arch/powerpc/kernel/setup_64.c
===================================================================
--- linux-2.6.16-rc1-git3.orig/arch/powerpc/kernel/setup_64.c
+++ linux-2.6.16-rc1-git3/arch/powerpc/kernel/setup_64.c
@@ -670,6 +670,14 @@ void __init setup_per_cpu_areas(void)
 		size = PERCPU_ENOUGH_ROOM;
 #endif
 
+	/*
+	 * Poison invalid cpus, with lots of high bits set this should
+	 * always fault
+	 */
+	for (i = 0; i < NR_CPUS; i++) {
+		paca[i].data_offset = 0xeeeeeeeeeeeeeeeeULL;
+	}
+
 	for_each_cpu(i) {
 		ptr = alloc_bootmem_node(NODE_DATA(cpu_to_node(i)), size);
 		if (!ptr)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help