Commit f94f7434 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds

initramfs: poison freed initrd memory

Various architectures including x86 poison the freed initrd memory.  Do
the same in the generic free_initrd_mem implementation and switch a few
more architectures that are identical to the generic code over to it now.

Link: http://lkml.kernel.org/r/20190213174621.29297-9-hch@lst.deSigned-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarMike Rapoport <rppt@linux.ibm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>	[arm64]
Cc: Geert Uytterhoeven <geert@linux-m68k.org>	[m68k]
Cc: Steven Price <steven.price@arm.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4afd58e1
...@@ -504,14 +504,6 @@ void free_init_pages(const char *what, unsigned long begin, unsigned long end) ...@@ -504,14 +504,6 @@ void free_init_pages(const char *what, unsigned long begin, unsigned long end)
printk(KERN_INFO "Freeing %s: %ldk freed\n", what, (end - begin) >> 10); printk(KERN_INFO "Freeing %s: %ldk freed\n", what, (end - begin) >> 10);
} }
#ifdef CONFIG_BLK_DEV_INITRD
void free_initrd_mem(unsigned long start, unsigned long end)
{
free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
"initrd");
}
#endif
void (*free_init_pages_eva)(void *begin, void *end) = NULL; void (*free_init_pages_eva)(void *begin, void *end) = NULL;
void __ref free_initmem(void) void __ref free_initmem(void)
......
...@@ -157,14 +157,6 @@ void free_initmem(void) ...@@ -157,14 +157,6 @@ void free_initmem(void)
free_initmem_default(POISON_FREE_INITMEM); free_initmem_default(POISON_FREE_INITMEM);
} }
#ifdef CONFIG_BLK_DEV_INITRD
void __init free_initrd_mem(unsigned long start, unsigned long end)
{
free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
"initrd");
}
#endif
unsigned long memory_block_size_bytes(void) unsigned long memory_block_size_bytes(void)
{ {
/* /*
......
...@@ -299,14 +299,6 @@ void free_initmem (void) ...@@ -299,14 +299,6 @@ void free_initmem (void)
free_initmem_default(POISON_FREE_INITMEM); free_initmem_default(POISON_FREE_INITMEM);
} }
#ifdef CONFIG_BLK_DEV_INITRD
void free_initrd_mem(unsigned long start, unsigned long end)
{
free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
"initrd");
}
#endif
void sparc_flush_page_to_ram(struct page *page) void sparc_flush_page_to_ram(struct page *page)
{ {
unsigned long vaddr = (unsigned long)page_address(page); unsigned long vaddr = (unsigned long)page_address(page);
......
...@@ -2572,14 +2572,6 @@ void free_initmem(void) ...@@ -2572,14 +2572,6 @@ void free_initmem(void)
} }
} }
#ifdef CONFIG_BLK_DEV_INITRD
void free_initrd_mem(unsigned long start, unsigned long end)
{
free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
"initrd");
}
#endif
pgprot_t PAGE_KERNEL __read_mostly; pgprot_t PAGE_KERNEL __read_mostly;
EXPORT_SYMBOL(PAGE_KERNEL); EXPORT_SYMBOL(PAGE_KERNEL);
......
...@@ -529,7 +529,8 @@ extern unsigned long __initramfs_size; ...@@ -529,7 +529,8 @@ extern unsigned long __initramfs_size;
void __weak free_initrd_mem(unsigned long start, unsigned long end) void __weak free_initrd_mem(unsigned long start, unsigned long end)
{ {
free_reserved_area((void *)start, (void *)end, -1, "initrd"); free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
"initrd");
} }
#ifdef CONFIG_KEXEC_CORE #ifdef CONFIG_KEXEC_CORE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment