forked from luck/tmp_suning_uos_patched
[PATCH] memory hotplug: fix compile error for i386 with NUMA config
Fix compile error when config memory hotplug with numa on i386. The cause of compile error was missing of arch_add_memory(), remove_memory(), and memory_add_physaddr_to_nid(). Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Acked-by: David Rientjes <rientjes@cs.washington.edu> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
080dd51d81
commit
7c7e9425f1
@ -405,3 +405,31 @@ void __init set_highmem_pages_init(int bad_ppro)
|
||||
totalram_pages += totalhigh_pages;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
int paddr_to_nid(u64 addr)
|
||||
{
|
||||
int nid;
|
||||
unsigned long pfn = PFN_DOWN(addr);
|
||||
|
||||
for_each_node(nid)
|
||||
if (node_start_pfn[nid] <= pfn &&
|
||||
pfn < node_end_pfn[nid])
|
||||
return nid;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is used to ask node id BEFORE memmap and mem_section's
|
||||
* initialization (pfn_to_nid() can't be used yet).
|
||||
* If _PXM is not defined on ACPI's DSDT, node id must be found by this.
|
||||
*/
|
||||
int memory_add_physaddr_to_nid(u64 addr)
|
||||
{
|
||||
int nid = paddr_to_nid(addr);
|
||||
return (nid >= 0) ? nid : 0;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
|
||||
#endif
|
||||
|
@ -673,16 +673,10 @@ void __init mem_init(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* this is for the non-NUMA, single node SMP system case.
|
||||
* Specifically, in the case of x86, we will always add
|
||||
* memory to the highmem for now.
|
||||
*/
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
||||
int arch_add_memory(int nid, u64 start, u64 size)
|
||||
{
|
||||
struct pglist_data *pgdata = &contig_page_data;
|
||||
struct pglist_data *pgdata = NODE_DATA(nid);
|
||||
struct zone *zone = pgdata->node_zones + ZONE_HIGHMEM;
|
||||
unsigned long start_pfn = start >> PAGE_SHIFT;
|
||||
unsigned long nr_pages = size >> PAGE_SHIFT;
|
||||
@ -694,7 +688,7 @@ int remove_memory(u64 start, u64 size)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
EXPORT_SYMBOL_GPL(remove_memory);
|
||||
#endif
|
||||
|
||||
struct kmem_cache *pgd_cache;
|
||||
|
Loading…
Reference in New Issue
Block a user