summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/memblock.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/mm/memblock.c b/mm/memblock.c
index 839531133816..7df468c8ebc8 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1247,6 +1247,12 @@ static phys_addr_t __init memblock_alloc_range_nid(phys_addr_t size,
{
phys_addr_t found;
+ if (!align) {
+ /* Can't use WARNs this early in boot on powerpc */
+ dump_stack();
+ align = SMP_CACHE_BYTES;
+ }
+
found = memblock_find_in_range_node(size, align, start, end, nid,
flags);
if (found && !memblock_reserve(found, size)) {
@@ -1369,6 +1375,11 @@ static void * __init memblock_alloc_internal(
if (WARN_ON_ONCE(slab_is_available()))
return kzalloc_node(size, GFP_NOWAIT, nid);
+ if (!align) {
+ dump_stack();
+ align = SMP_CACHE_BYTES;
+ }
+
if (max_addr > memblock.current_limit)
max_addr = memblock.current_limit;
again: