Re: [PATCH v2 19/21] treewide: add checks for the return value of memblock_alloc*()

Rob Herring
2019-01-21T17:18:21Z

On Mon, Jan 21, 2019 at 10:04:06AM +0200, Mike Rapoport wrote:
> Add check for the return value of memblock_alloc*() functions and call
> panic() in case of error.
> The panic message repeats the one used by panicing memblock allocators with
> adjustment of parameters to include only relevant ones.
>
> The replacement was mostly automated with semantic patches like the one
> below with manual massaging of format strings.
>
> @@
> expression ptr, size, align;
> @@
> ptr = memblock_alloc(size, align);
> + if (!ptr)
> + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", __func__,
> size, align);
>
> Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
> Reviewed-by: Guo Ren <ren_guo@c-sky.com> # c-sky
> Acked-by: Paul Burton <paul.burton@mips.com> # MIPS
> Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
> Reviewed-by: Juergen Gross <jgross@suse.com> # Xen
> ---
> arch/alpha/kernel/core_cia.c | 3 +++
> arch/alpha/kernel/core_marvel.c | 6 ++++++
> arch/alpha/kernel/pci-noop.c | 13 +++++++++++--
> arch/alpha/kernel/pci.c | 11 ++++++++++-
> arch/alpha/kernel/pci_iommu.c | 12 ++++++++++++
> arch/arc/mm/highmem.c | 4 ++++
> arch/arm/kernel/setup.c | 6 ++++++
> arch/arm/mm/mmu.c | 14 +++++++++++++-
> arch/arm64/kernel/setup.c | 8 +++++---
> arch/arm64/mm/kasan_init.c | 10 ++++++++++
> arch/c6x/mm/dma-coherent.c | 4 ++++
> arch/c6x/mm/init.c | 3 +++
> arch/csky/mm/highmem.c | 5 +++++
> arch/h8300/mm/init.c | 3 +++
> arch/m68k/atari/stram.c | 4 ++++
> arch/m68k/mm/init.c | 3 +++
> arch/m68k/mm/mcfmmu.c | 6 ++++++
> arch/m68k/mm/motorola.c | 9 +++++++++
> arch/m68k/mm/sun3mmu.c | 6 ++++++
> arch/m68k/sun3/sun3dvma.c | 3 +++
> arch/microblaze/mm/init.c | 8 ++++++--
> arch/mips/cavium-octeon/dma-octeon.c | 3 +++
> arch/mips/kernel/setup.c | 3 +++
> arch/mips/kernel/traps.c | 3 +++
> arch/mips/mm/init.c | 5 +++++
> arch/nds32/mm/init.c | 12 ++++++++++++
> arch/openrisc/mm/ioremap.c | 8 ++++++--
> arch/powerpc/kernel/dt_cpu_ftrs.c | 5 +++++
> arch/powerpc/kernel/pci_32.c | 3 +++
> arch/powerpc/kernel/setup-common.c | 3 +++
> arch/powerpc/kernel/setup_64.c | 4 ++++
> arch/powerpc/lib/alloc.c | 3 +++
> arch/powerpc/mm/hash_utils_64.c | 3 +++
> arch/powerpc/mm/mmu_context_nohash.c | 9 +++++++++
> arch/powerpc/mm/pgtable-book3e.c | 12 ++++++++++--
> arch/powerpc/mm/pgtable-book3s64.c | 3 +++
> arch/powerpc/mm/pgtable-radix.c | 9 ++++++++-
> arch/powerpc/mm/ppc_mmu_32.c | 3 +++
> arch/powerpc/platforms/pasemi/iommu.c | 3 +++
> arch/powerpc/platforms/powermac/nvram.c | 3 +++
> arch/powerpc/platforms/powernv/opal.c | 3 +++
> arch/powerpc/platforms/powernv/pci-ioda.c | 8 ++++++++
> arch/powerpc/platforms/ps3/setup.c | 3 +++
> arch/powerpc/sysdev/msi_bitmap.c | 3 +++
> arch/s390/kernel/setup.c | 13 +++++++++++++
> arch/s390/kernel/smp.c | 5 ++++-
> arch/s390/kernel/topology.c | 6 ++++++
> arch/s390/numa/mode_emu.c | 3 +++
> arch/s390/numa/numa.c | 6 +++++-
> arch/sh/mm/init.c | 6 ++++++
> arch/sh/mm/numa.c | 4 ++++
> arch/um/drivers/net_kern.c | 3 +++
> arch/um/drivers/vector_kern.c | 3 +++
> arch/um/kernel/initrd.c | 2 ++
> arch/um/kernel/mem.c | 16 ++++++++++++++++
> arch/unicore32/kernel/setup.c | 4 ++++
> arch/unicore32/mm/mmu.c | 15 +++++++++++++--
> arch/x86/kernel/acpi/boot.c | 3 +++
> arch/x86/kernel/apic/io_apic.c | 5 +++++
> arch/x86/kernel/e820.c | 3 +++
> arch/x86/platform/olpc/olpc_dt.c | 3 +++
> arch/x86/xen/p2m.c | 11 +++++++++--
> arch/xtensa/mm/kasan_init.c | 4 ++++
> arch/xtensa/mm/mmu.c | 3 +++
> drivers/clk/ti/clk.c | 3 +++
> drivers/macintosh/smu.c | 3 +++
> drivers/of/fdt.c | 8 +++++++-
> drivers/of/unittest.c | 8 +++++++-

Acked-by: Rob Herring <robh@kernel.org>

> drivers/xen/swiotlb-xen.c | 7 +++++--
> kernel/power/snapshot.c | 3 +++
> lib/cpumask.c | 3 +++
> mm/kasan/init.c | 10 ++++++++--
> mm/sparse.c | 19 +++++++++++++++++--
> 73 files changed, 409 insertions(+), 28 deletions(-)