--- zzzz-none-000/linux-2.6.19.2/arch/x86_64/mm/init.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/arch/x86_64/mm/init.c 2007-01-11 07:38:19.000000000 +0000 @@ -496,7 +496,7 @@ } EXPORT_SYMBOL_GPL(remove_memory); -#if !defined(CONFIG_ACPI_NUMA) && defined(CONFIG_NUMA) +#ifndef CONFIG_ACPI_NUMA int memory_add_physaddr_to_nid(u64 start) { return 0; @@ -504,6 +504,13 @@ EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); #endif +#ifndef CONFIG_ACPI_NUMA +int memory_add_physaddr_to_nid(u64 start) +{ + return 0; +} +#endif + #endif /* CONFIG_MEMORY_HOTPLUG */ #ifdef CONFIG_MEMORY_HOTPLUG_RESERVE @@ -648,22 +655,9 @@ void __init reserve_bootmem_generic(unsigned long phys, unsigned len) { + /* Should check here against the e820 map to avoid double free */ #ifdef CONFIG_NUMA int nid = phys_to_nid(phys); -#endif - unsigned long pfn = phys >> PAGE_SHIFT; - if (pfn >= end_pfn) { - /* This can happen with kdump kernels when accessing firmware - tables. */ - if (pfn < end_pfn_map) - return; - printk(KERN_ERR "reserve_bootmem: illegal reserve %lx %u\n", - phys, len); - return; - } - - /* Should check here against the e820 map to avoid double free */ -#ifdef CONFIG_NUMA reserve_bootmem_node(NODE_DATA(nid), phys, len); #else reserve_bootmem(phys, len);