linux-stable/arch/powerpc/sysdev
Mike Rapoport f806714f70 powerpc: prefer memblock APIs returning virtual address
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.com
Signed-off-by: Mike 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-03-07 18:32:03 -08:00
..
ge License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xics powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00
xive powerpc/xive: Define xive_do_source_eoi as static 2018-11-25 17:11:21 +11:00
6xx-suspend.S
cpm1.c powerpc: remove unnecessary inclusion of asm/tlbflush.h 2018-07-30 22:48:20 +10:00
cpm2.c powerpc/sysdev: change CPM GPIO to platform_device 2018-01-20 23:29:02 -06:00
cpm2_pic.c
cpm2_pic.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpm_common.c powerpc/cpm1: fix compilation error with CONFIG_PPC_EARLY_DEBUG_CPM 2018-08-10 22:12:33 +10:00
cpm_gpio.c powerpc: cpm_gpio: Remove owner assignment from platform_driver 2018-06-03 20:43:35 +10:00
dart.h
dart_iommu.c powerpc: prefer memblock APIs returning virtual address 2019-03-07 18:32:03 -08:00
dcr-low.S
dcr.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
ehv_pic.c
fsl_85xx_cache_ctlr.h
fsl_85xx_cache_sram.c powerpc: don't use ioremap_prot() nor __ioremap() unless really needed. 2018-10-14 18:04:09 +11:00
fsl_85xx_l2ctlr.c
fsl_gtm.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
fsl_lbc.c
fsl_mpic_err.c powerpc/mpic: Pass first free vector number to mpic_setup_error_int() 2018-07-19 21:58:09 +10:00
fsl_mpic_timer_wakeup.c powerpc/mpic_timer: avoid struct timeval 2018-01-21 15:06:16 +11:00
fsl_msi.c kernel/irq: Extend lockdep class for request mutex 2017-12-28 12:26:35 +01:00
fsl_msi.h
fsl_pci.c Revert "powerpc/fsl_pci: simplify fsl_pci_dma_set_mask" 2018-12-23 20:11:20 -06:00
fsl_pci.h
fsl_pmc.c
fsl_rcpm.c
fsl_rio.c rapidio: remove global irq spinlocks from the subsystem 2017-10-03 17:54:24 -07:00
fsl_rio.h powerpc/fsl-rio: fix spelling mistake "reserverd" -> "reserved" 2018-12-21 20:45:15 -06:00
fsl_rmu.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
fsl_soc.c powerpc/cpm1: link to CONFIG_CPM1 instead of CONFIG_8xx 2017-08-10 23:32:05 +10:00
fsl_soc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
grackle.c
i8259.c powerpc: Set I/O port resource types correctly 2017-12-18 23:07:45 -06:00
indirect_pci.c
ipic.c powerpc/ipic: Remove unused ipic_set_priority() 2018-12-17 22:12:30 +11:00
ipic.h
Kconfig powerpc: remove redundant 'default n' from Kconfig-s 2018-10-13 22:21:25 +11:00
Makefile powerpc: change CONFIG_6xx to CONFIG_PPC_BOOK3S_32 2018-11-26 22:33:37 +11:00
micropatch.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmio_nvram.c
mpc5xxx_clocks.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpic.c powerpc/mpic: Pass first free vector number to mpic_setup_error_int() 2018-07-19 21:58:09 +10:00
mpic.h
mpic_msgr.c powerpc: Fix size calculation using resource_size() 2018-08-10 22:12:33 +10:00
mpic_msi.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
mpic_timer.c powerpc/mpic_timer: avoid struct timeval 2018-01-21 15:06:16 +11:00
mpic_u3msi.c
msi_bitmap.c memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
of_rtc.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
pmi.c
rtc_cmos_setup.c
scom.c powerpc/scom: Return NULL instead of 0 2018-11-25 17:11:21 +11:00
simple_gpio.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
simple_gpio.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tsi108_dev.c
tsi108_pci.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
udbg_memcons.c
xilinx_intc.c
xilinx_pci.c