/* Returns the size the region should have to enforce the memory limit. This will either be the original value of size, a truncated value, or zero. If the returned value of size is 0 the region should be discarded as it lies wholy above the memory limit.  */
static unsigned long __init numa_enforce_memory_limit(unsigned long start, unsigned long size)
/* Returns the size the region should have to enforce the memory limit. This will either be the original value of size, a truncated value, or zero. If the returned value of size is 0 the region should be discarded as it lies wholy above the memory limit.  */
static unsigned long __init numa_enforce_memory_limit(unsigned long start, unsigned long size)
{
	if (start + size <= lmb_end_of_DRAM())
		return size;
	if (start >= lmb_end_of_DRAM())
		return 0;
	return lmb_end_of_DRAM() - start;
}