• Mike Rapoport's avatar
    powerpc: prefer memblock APIs returning virtual address · f806714f
    Mike Rapoport authored
    Patch series "memblock: simplify several early memory allocation", v4.
    
    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.
    
    This patch (of 6):
    
    There are a several places that allocate memory using memblock APIs that
    return a physical address, convert the returned address to the virtual
    address and frequently also memset(0) the allocated range.
    
    Update these places to use memblock allocators already returning a
    virtual address.  Use memblock functions that clear the allocated memory
    instead of calling memset(0) where appropriate.
    
    The calls to memblock_alloc_base() that were not followed by memset(0)
    are replaced with memblock_alloc_try_nid_raw().  Since the latter does
    not panic() when the allocation fails, the appropriate panic() calls are
    added to the call sites.
    
    Link: http://lkml.kernel.org/r/1546248566-14910-2-git-send-email-rppt@linux.ibm.comSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Guan Xuetao <gxt@pku.edu.cn>
    Cc: Greentime Hu <green.hu@gmail.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Michal Simek <monstr@monstr.eu>
    Cc: Mark Salter <msalter@redhat.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Rich Felker <dalias@libc.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Cc: Stafford Horne <shorne@gmail.com>
    Cc: Vincent Chen <deanbo422@gmail.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f806714f
setup_64.c 25.6 KB