The patch titled Subject: arch: don't memset(0) memory returned by memblock_alloc() has been added to the -mm tree. Its filename is arch-dont-memset0-memory-returned-by-memblock_alloc.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/arch-dont-memset0-memory-returned-by-memblock_alloc.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/arch-dont-memset0-memory-returned-by-memblock_alloc.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Mike Rapoport <rppt@xxxxxxxxxxxxx> Subject: arch: don't memset(0) memory returned by memblock_alloc() memblock_alloc() already clears the allocated memory, no point in doing it twice. Link: http://lkml.kernel.org/r/1548057848-15136-14-git-send-email-rppt@xxxxxxxxxxxxx Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> # m68k Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Christophe Leroy <christophe.leroy@xxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Dennis Zhou <dennis@xxxxxxxxxx> Cc: Greentime Hu <green.hu@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: Guan Xuetao <gxt@xxxxxxxxxx> Cc: Guo Ren <guoren@xxxxxxxxxx> Cc: Guo Ren <ren_guo@xxxxxxxxx> [c-sky] Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> Cc: Juergen Gross <jgross@xxxxxxxx> [Xen] Cc: Mark Salter <msalter@xxxxxxxxxx> Cc: Matt Turner <mattst88@xxxxxxxxx> Cc: Max Filippov <jcmvbkbc@xxxxxxxxx> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> Cc: Michal Simek <monstr@xxxxxxxxx> Cc: Paul Burton <paul.burton@xxxxxxxx> Cc: Petr Mladek <pmladek@xxxxxxxx> Cc: Richard Weinberger <richard@xxxxxx> Cc: Rich Felker <dalias@xxxxxxxx> Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: Rob Herring <robh@xxxxxxxxxx> Cc: Russell King <linux@xxxxxxxxxxxxxxx> Cc: Stafford Horne <shorne@xxxxxxxxx> Cc: Tony Luck <tony.luck@xxxxxxxxx> Cc: Vineet Gupta <vgupta@xxxxxxxxxxxx> Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/c6x/mm/init.c | 1 - arch/h8300/mm/init.c | 1 - arch/ia64/kernel/mca.c | 2 -- arch/m68k/mm/mcfmmu.c | 1 - arch/microblaze/mm/init.c | 6 ++---- arch/sparc/kernel/prom_32.c | 2 -- 6 files changed, 2 insertions(+), 11 deletions(-) --- a/arch/c6x/mm/init.c~arch-dont-memset0-memory-returned-by-memblock_alloc +++ a/arch/c6x/mm/init.c @@ -40,7 +40,6 @@ void __init paging_init(void) empty_zero_page = (unsigned long) memblock_alloc(PAGE_SIZE, PAGE_SIZE); - memset((void *)empty_zero_page, 0, PAGE_SIZE); /* * Set up user data space --- a/arch/h8300/mm/init.c~arch-dont-memset0-memory-returned-by-memblock_alloc +++ a/arch/h8300/mm/init.c @@ -68,7 +68,6 @@ void __init paging_init(void) * to a couple of allocated pages. */ empty_zero_page = (unsigned long)memblock_alloc(PAGE_SIZE, PAGE_SIZE); - memset((void *)empty_zero_page, 0, PAGE_SIZE); /* * Set up SFC/DFC registers (user data space). --- a/arch/ia64/kernel/mca.c~arch-dont-memset0-memory-returned-by-memblock_alloc +++ a/arch/ia64/kernel/mca.c @@ -400,8 +400,6 @@ ia64_log_init(int sal_info_type) // set up OS data structures to hold error info IA64_LOG_ALLOCATE(sal_info_type, max_size); - memset(IA64_LOG_CURR_BUFFER(sal_info_type), 0, max_size); - memset(IA64_LOG_NEXT_BUFFER(sal_info_type), 0, max_size); } /* --- a/arch/m68k/mm/mcfmmu.c~arch-dont-memset0-memory-returned-by-memblock_alloc +++ a/arch/m68k/mm/mcfmmu.c @@ -44,7 +44,6 @@ void __init paging_init(void) int i; empty_zero_page = (void *) memblock_alloc(PAGE_SIZE, PAGE_SIZE); - memset((void *) empty_zero_page, 0, PAGE_SIZE); pg_dir = swapper_pg_dir; memset(swapper_pg_dir, 0, sizeof(swapper_pg_dir)); --- a/arch/microblaze/mm/init.c~arch-dont-memset0-memory-returned-by-memblock_alloc +++ a/arch/microblaze/mm/init.c @@ -376,10 +376,8 @@ void * __ref zalloc_maybe_bootmem(size_t if (mem_init_done) p = kzalloc(size, mask); - else { + else p = memblock_alloc(size, SMP_CACHE_BYTES); - if (p) - memset(p, 0, size); - } + return p; } --- a/arch/sparc/kernel/prom_32.c~arch-dont-memset0-memory-returned-by-memblock_alloc +++ a/arch/sparc/kernel/prom_32.c @@ -33,8 +33,6 @@ void * __init prom_early_alloc(unsigned void *ret; ret = memblock_alloc(size, SMP_CACHE_BYTES); - if (ret != NULL) - memset(ret, 0, size); prom_early_allocated += size; _ Patches currently in -mm which might be from rppt@xxxxxxxxxxxxx are powerpc-prefer-memblock-apis-returning-virtual-address.patch microblaze-prefer-memblock-api-returning-virtual-address.patch sh-prefer-memblock-apis-returning-virtual-address.patch openrisc-simplify-pte_alloc_one_kernel.patch arch-simplify-several-early-memory-allocations.patch arm-s390-unicore32-remove-oneliner-wrappers-for-memblock_alloc.patch openrisc-prefer-memblock-apis-returning-virtual-address.patch memblock-replace-memblock_alloc_baseanywhere-with-memblock_phys_alloc.patch memblock-drop-memblock_alloc_base_nid.patch memblock-emphasize-that-memblock_alloc_range-returns-a-physical-address.patch memblock-memblock_phys_alloc_try_nid-dont-panic.patch memblock-memblock_phys_alloc-dont-panic.patch memblock-drop-__memblock_alloc_base.patch memblock-drop-memblock_alloc_base.patch memblock-refactor-internal-allocation-functions.patch memblock-make-memblock_find_in_range_node-and-choose_memblock_flags-static.patch arch-use-memblock_alloc-instead-of-memblock_alloc_fromsize-align-0.patch arch-dont-memset0-memory-returned-by-memblock_alloc.patch ia64-add-checks-for-the-return-value-of-memblock_alloc.patch sparc-add-checks-for-the-return-value-of-memblock_alloc.patch mm-percpu-add-checks-for-the-return-value-of-memblock_alloc.patch init-main-add-checks-for-the-return-value-of-memblock_alloc.patch swiotlb-add-checks-for-the-return-value-of-memblock_alloc.patch treewide-add-checks-for-the-return-value-of-memblock_alloc.patch memblock-memblock_alloc_try_nid-dont-panic.patch memblock-drop-memblock_alloc__nopanic-variants.patch