On Sun, 2018-12-09 at 17:00 +0200, Mike Rapoport wrote: > Hi, > > These patches simplify some of the early memory allocations by replacing > usage of older memblock APIs with newer and shinier ones. > > Quite a few places in the arch/ code allocated memory using a memblock API > that returns a physical address of the allocated area, then converted this > physical address to a virtual one and then used memset(0) to clear the > allocated range. > > More recent memblock APIs do all the three steps in one call and their > usage simplifies the code. > > It's important to note that regardless of API used, the core allocation is > nearly identical for any set of memblock allocators: first it tries to find > a free memory with all the constraints specified by the caller and then > falls back to the allocation with some or all constraints disabled. > > The first three patches perform the conversion of call sites that have > exact requirements for the node and the possible memory range. > > The fourth patch is a bit one-off as it simplifies openrisc's > implementation of pte_alloc_one_kernel(), and not only the memblock usage. > > The fifth patch takes care of simpler cases when the allocation can be > satisfied with a simple call to memblock_alloc(). > > The sixth patch removes one-liner wrappers for memblock_alloc on arm and > unicore32, as suggested by Christoph. > > v3: > * added Tested-by from Michal Simek for microblaze changes > * updated powerpc changes as per Michael Ellerman comments: > - use allocations that clear memory in alloc_paca_data() and alloc_stack() > - ensure the replacement is equivalent to old API > > v2: > * added Ack from Stafford Horne for openrisc changes > * entirely drop early_alloc wrappers on arm and unicore32, as per Christoph > Hellwig > > > > Mike Rapoport (6): > powerpc: prefer memblock APIs returning virtual address > microblaze: prefer memblock API returning virtual address > sh: prefer memblock APIs returning virtual address > openrisc: simplify pte_alloc_one_kernel() > arch: simplify several early memory allocations > arm, unicore32: remove early_alloc*() wrappers > > arch/arm/mm/mmu.c | 13 +++---------- > arch/c6x/mm/dma-coherent.c | 9 ++------- > arch/microblaze/mm/init.c | 5 +++-- > arch/nds32/mm/init.c | 12 ++++-------- > arch/openrisc/mm/ioremap.c | 11 ++++------- > arch/powerpc/kernel/paca.c | 16 ++++++---------- > arch/powerpc/kernel/setup-common.c | 4 ++-- > arch/powerpc/kernel/setup_64.c | 24 ++++++++++-------------- > arch/powerpc/mm/hash_utils_64.c | 6 +++--- > arch/powerpc/mm/pgtable-book3e.c | 8 ++------ > arch/powerpc/mm/pgtable-book3s64.c | 5 +---- > arch/powerpc/mm/pgtable-radix.c | 25 +++++++------------------ > arch/powerpc/mm/pgtable_32.c | 4 +--- > arch/powerpc/mm/ppc_mmu_32.c | 3 +-- > arch/powerpc/platforms/pasemi/iommu.c | 5 +++-- > arch/powerpc/platforms/powernv/opal.c | 3 +-- > arch/powerpc/platforms/pseries/setup.c | 18 ++++++++++++++---- > arch/powerpc/sysdev/dart_iommu.c | 7 +++++-- > arch/sh/mm/init.c | 18 +++++------------- > arch/sh/mm/numa.c | 5 ++--- > arch/sparc/kernel/prom_64.c | 7 ++----- > arch/sparc/mm/init_64.c | 9 +++------ > arch/unicore32/mm/mmu.c | 14 ++++---------- > 23 files changed, 88 insertions(+), 143 deletions(-) > For the c6x bits: Acked-by: Mark Salter <msalter@xxxxxxxxxx>