summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/lib/alloc.c
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2014-11-18 06:47:35 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2014-11-19 11:41:51 +0100
commite39f223fc93580c86ccf6b3422033e349f57f0dd (patch)
tree0aa179423f4c553bbf1fa361d28fe4c9c75927e7 /arch/powerpc/lib/alloc.c
parentpowerpc/pseries: Initialise nvram_pstore_info's buf_lock (diff)
downloadlinux-e39f223fc93580c86ccf6b3422033e349f57f0dd.tar.xz
linux-e39f223fc93580c86ccf6b3422033e349f57f0dd.zip
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>
Diffstat (limited to 'arch/powerpc/lib/alloc.c')
-rw-r--r--arch/powerpc/lib/alloc.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/lib/alloc.c b/arch/powerpc/lib/alloc.c
index da22c84a8fed..4a6c2cf890d9 100644
--- a/arch/powerpc/lib/alloc.c
+++ b/arch/powerpc/lib/alloc.c
@@ -13,9 +13,7 @@ void * __init_refok zalloc_maybe_bootmem(size_t size, gfp_t mask)
if (mem_init_done)
p = kzalloc(size, mask);
else {
- p = alloc_bootmem(size);
- if (p)
- memset(p, 0, size);
+ p = memblock_virt_alloc(size, 0);
}
return p;
}