numa_enforce_memory_limit trys to be smart and only trim the memory it finds to lmb_end_of_DRAM when a memory limit is set. However, the early boot code may also limit memory when iommu=off is specified. When this happens, the page allocator is told of pages not in the linear mapping and gets a fatal DSI.
Signed-off-by: Milton Miller <[EMAIL PROTECTED]> -- Previously this patch tried to check if iommu=off was specified, but it was requested that the check just be removed. http://patchwork.ozlabs.org/linuxppc/patch?id=11774 diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index cf4bffb..590406c 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -472,12 +472,10 @@ static unsigned long __init numa_enforce_memory_limit(unsigned long start, /* * We use lmb_end_of_DRAM() in here instead of memory_limit because * we've already adjusted it for the limit and it takes care of - * having memory holes below the limit. + * having memory holes below the limit. Also, in the case of + * iommu_is_off, memory_limit is not set but is implicitly enforced. */ - if (! memory_limit) - return size; - if (start + size <= lmb_end_of_DRAM()) return size; _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev