-
Andrew Morton authored
From: Dave Hansen <haveblue@us.ibm.com> In order to turn an 8-way x440 into a 4-way for testing, we often use mem=(1/2 of total) and maxcpus=4. maxcpus has always worked, but mem= hasn't. The mem= parameter actually changes the kernel's e820 structure, which manifests itself as max_pfn. node_end_pfn[] obeys this because of find_max_pfn_node(), but node_start_pfn[] wasn't modified. If you have a mem= line that causes memory to stop before the beginning of a node, you get a condition where start > end (because start was never modified). There is a bug check for this, but it was placed just _before_ the error was made :) Also, the bootmem alloc functions die if you request something of zero size from them. This patch avoids that too. This shouldn't have much of an effect on non-NUMA systems.
9d7a7faf