[PATCH] x86_64: Support memory hotadd without sparsemem
Memory hotadd doesn't need SPARSEMEM, but can be handled by just preallocating mem_maps. This only needs some untangling of ifdefs to enable the necessary code even without SPARSEMEM. Originally from Keith Mannthey, hacked by AK. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
805e8c03c9
commit
9d99aaa31f
@@ -58,8 +58,6 @@ extern int add_one_highpage(struct page *page, int pfn, int bad_ppro);
|
||||
/* need some defines for these for archs that don't support it */
|
||||
extern void online_page(struct page *page);
|
||||
/* VM interface that may be used by firmware interface */
|
||||
extern int add_memory(u64 start, u64 size);
|
||||
extern int remove_memory(u64 start, u64 size);
|
||||
extern int online_pages(unsigned long, unsigned long);
|
||||
|
||||
/* reasonably generic interface to expand the physical pages in a zone */
|
||||
@@ -92,11 +90,6 @@ static inline int mhp_notimplemented(const char *func)
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int __add_pages(struct zone *zone, unsigned long start_pfn,
|
||||
unsigned long nr_pages)
|
||||
{
|
||||
return mhp_notimplemented(__FUNCTION__);
|
||||
}
|
||||
#endif /* ! CONFIG_MEMORY_HOTPLUG */
|
||||
static inline int __remove_pages(struct zone *zone, unsigned long start_pfn,
|
||||
unsigned long nr_pages)
|
||||
@@ -105,4 +98,11 @@ static inline int __remove_pages(struct zone *zone, unsigned long start_pfn,
|
||||
dump_stack();
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_ACPI_HOTPLUG_MEMORY) \
|
||||
|| defined(CONFIG_ACPI_HOTPLUG_MEMORY_MODULE)
|
||||
extern int add_memory(u64 start, u64 size);
|
||||
extern int remove_memory(u64 start, u64 size);
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_MEMORY_HOTPLUG_H */
|
||||
|
||||
Reference in New Issue
Block a user