diff options
author | Mike Rapoport <rppt@linux.ibm.com> | 2019-05-14 02:18:40 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 18:47:47 +0200 |
commit | 997aef68af3ef1f2cb97da1c0b41a5afa87f63e2 (patch) | |
tree | 3abeb4f6d3dd24b804cbf1474fe606fc8c67a537 /init | |
parent | initramfs: poison freed initrd memory (diff) | |
download | linux-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.c | 5 |
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; |