mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
[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 <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
39b742f957
commit
028d9b3cc6
@ -24,6 +24,7 @@
|
|||||||
#include <linux/pagemap.h>
|
#include <linux/pagemap.h>
|
||||||
#include <linux/bootmem.h>
|
#include <linux/bootmem.h>
|
||||||
#include <linux/pfn.h>
|
#include <linux/pfn.h>
|
||||||
|
#include <linux/poison.h>
|
||||||
|
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
@ -187,6 +188,7 @@ void free_initmem(void)
|
|||||||
for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
|
for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
|
||||||
ClearPageReserved(virt_to_page(addr));
|
ClearPageReserved(virt_to_page(addr));
|
||||||
init_page_count(virt_to_page(addr));
|
init_page_count(virt_to_page(addr));
|
||||||
|
memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
|
||||||
free_page(addr);
|
free_page(addr);
|
||||||
totalram_pages++;
|
totalram_pages++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user