powerpc: Remove more traces of bootmem
authorMichael Ellerman <mpe@ellerman.id.au>
Tue, 18 Nov 2014 05:47:35 +0000 (16:47 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 19 Nov 2014 10:41:51 +0000 (21:41 +1100)
commite39f223fc93580c86ccf6b3422033e349f57f0dd
tree0aa179423f4c553bbf1fa361d28fe4c9c75927e7
parenta49ab6eeebe5624d51466969a7bac611231eede8
powerpc: Remove more traces of bootmem

Although we are now selecting NO_BOOTMEM, we still have some traces of
bootmem lying around. That is because even with NO_BOOTMEM there is
still a shim that converts bootmem calls into memblock calls, but
ultimately we want to remove all traces of bootmem.

Most of the patch is conversions from alloc_bootmem() to
memblock_virt_alloc(). In general a call such as:

  p = (struct foo *)alloc_bootmem(x);

Becomes:

  p = memblock_virt_alloc(x, 0);

We don't need the cast because memblock_virt_alloc() returns a void *.
The alignment value of zero tells memblock to use the default alignment,
which is SMP_CACHE_BYTES, the same value alloc_bootmem() uses.

We remove a number of NULL checks on the result of
memblock_virt_alloc(). That is because memblock_virt_alloc() will panic
if it can't allocate, in exactly the same way as alloc_bootmem(), so the
NULL checks are and always have been redundant.

The memory returned by memblock_virt_alloc() is already zeroed, so we
remove several memsets of the result of memblock_virt_alloc().

Finally we convert a few uses of __alloc_bootmem(x, y, MAX_DMA_ADDRESS)
to just plain memblock_virt_alloc(). We don't use memblock_alloc_base()
because MAX_DMA_ADDRESS is ~0ul on powerpc, so limiting the allocation
to that is pointless, 16XB ought to be enough for anyone.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
12 files changed:
arch/powerpc/kernel/pci-common.c
arch/powerpc/kernel/pci_32.c
arch/powerpc/kernel/setup_64.c
arch/powerpc/lib/alloc.c
arch/powerpc/mm/hugetlbpage.c
arch/powerpc/mm/mmu_context_nohash.c
arch/powerpc/platforms/cell/celleb_pci.c
arch/powerpc/platforms/powermac/nvram.c
arch/powerpc/platforms/powernv/pci-ioda.c
arch/powerpc/platforms/powernv/pci-p5ioc2.c
arch/powerpc/platforms/ps3/setup.c
arch/powerpc/sysdev/fsl_pci.c