2006-12-08 15:22:10

by Martin Schwidefsky

[permalink] [raw]
Subject: [S390] Poison init section before freeing it.

From: Heiko Carstens <[email protected]>

[S390] Poison init section before freeing it.

The data patterns should allow us to easily tell if somebody accesses
initdata/code after it was freed. Same code as on various other
architectures.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---

arch/s390/mm/init.c | 2 ++
1 files changed, 2 insertions(+)

diff -urpN linux-2.6/arch/s390/mm/init.c linux-2.6-patched/arch/s390/mm/init.c
--- linux-2.6/arch/s390/mm/init.c 2006-12-08 15:53:05.000000000 +0100
+++ linux-2.6-patched/arch/s390/mm/init.c 2006-12-08 15:53:05.000000000 +0100
@@ -24,6 +24,7 @@
#include <linux/pagemap.h>
#include <linux/bootmem.h>
#include <linux/pfn.h>
+#include <linux/poison.h>

#include <asm/processor.h>
#include <asm/system.h>
@@ -187,6 +188,7 @@ void free_initmem(void)
for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
ClearPageReserved(virt_to_page(addr));
init_page_count(virt_to_page(addr));
+ memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
free_page(addr);
totalram_pages++;
}