summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorMike Rapoport <rppt@linux.ibm.com>2019-05-14 02:18:40 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-14 18:47:47 +0200
commit997aef68af3ef1f2cb97da1c0b41a5afa87f63e2 (patch)
tree3abeb4f6d3dd24b804cbf1474fe606fc8c67a537 /init
parentinitramfs: poison freed initrd memory (diff)
downloadlinux-997aef68af3ef1f2cb97da1c0b41a5afa87f63e2.tar.xz
linux-997aef68af3ef1f2cb97da1c0b41a5afa87f63e2.zip
init: provide a generic free_initmem implementation
Patch series "provide a generic free_initmem implementation", v2. Many architectures implement free_initmem() in exactly the same or very similar way: they wrap the call to free_initmem_default() with sometimes different 'poison' parameter. These patches switch those architectures to use a generic implementation that does free_initmem_default(POISON_FREE_INITMEM). This was inspired by Christoph's patches for free_initrd_mem [1] and I shamelessly copied changelog entries from his patches :) [1] https://lore.kernel.org/lkml/20190213174621.29297-1-hch@lst.de/ This patch (of 2): For most architectures free_initmem just a wrapper for the same free_initmem_default(-1) call. Provide that as a generic implementation marked __weak. Link: http://lkml.kernel.org/r/1550515285-17446-2-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Christoph Hellwig <hch@lst.de> Cc: Palmer Dabbelt <palmer@sifive.com> Cc: Richard Kuo <rkuo@codeaurora.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'init')
-rw-r--r--init/main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/init/main.c b/init/main.c
index 33c87e91dc37..26234570a324 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1074,6 +1074,11 @@ static inline void mark_readonly(void)
}
#endif
+void __weak free_initmem(void)
+{
+ free_initmem_default(-1);
+}
+
static int __ref kernel_init(void *unused)
{
int ret;