diff options
Diffstat (limited to 'drivers/base/memory.c')
| -rw-r--r-- | drivers/base/memory.c | 49 | 
1 files changed, 25 insertions, 24 deletions
diff --git a/drivers/base/memory.c b/drivers/base/memory.c index a51007b7903..14f8a6954da 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c @@ -93,16 +93,6 @@ int register_memory(struct memory_block *memory)  	return error;  } -static void -unregister_memory(struct memory_block *memory) -{ -	BUG_ON(memory->dev.bus != &memory_subsys); - -	/* drop the ref. we got in remove_memory_block() */ -	kobject_put(&memory->dev.kobj); -	device_unregister(&memory->dev); -} -  unsigned long __weak memory_block_size_bytes(void)  {  	return MIN_MEMORY_BLOCK_SIZE; @@ -217,8 +207,7 @@ int memory_isolate_notify(unsigned long val, void *v)   * The probe routines leave the pages reserved, just as the bootmem code does.   * Make sure they're still that way.   */ -static bool pages_correctly_reserved(unsigned long start_pfn, -					unsigned long nr_pages) +static bool pages_correctly_reserved(unsigned long start_pfn)  {  	int i, j;  	struct page *page; @@ -266,7 +255,7 @@ memory_block_action(unsigned long phys_index, unsigned long action, int online_t  	switch (action) {  		case MEM_ONLINE: -			if (!pages_correctly_reserved(start_pfn, nr_pages)) +			if (!pages_correctly_reserved(start_pfn))  				return -EBUSY;  			ret = online_pages(start_pfn, nr_pages, online_type); @@ -637,8 +626,28 @@ static int add_memory_section(int nid, struct mem_section *section,  	return ret;  } -int remove_memory_block(unsigned long node_id, struct mem_section *section, -		int phys_device) +/* + * need an interface for the VM to add new memory regions, + * but without onlining it. + */ +int register_new_memory(int nid, struct mem_section *section) +{ +	return add_memory_section(nid, section, NULL, MEM_OFFLINE, HOTPLUG); +} + +#ifdef CONFIG_MEMORY_HOTREMOVE +static void +unregister_memory(struct memory_block *memory) +{ +	BUG_ON(memory->dev.bus != &memory_subsys); + +	/* drop the ref. we got in remove_memory_block() */ +	kobject_put(&memory->dev.kobj); +	device_unregister(&memory->dev); +} + +static int remove_memory_block(unsigned long node_id, +			       struct mem_section *section, int phys_device)  {  	struct memory_block *mem; @@ -661,15 +670,6 @@ int remove_memory_block(unsigned long node_id, struct mem_section *section,  	return 0;  } -/* - * need an interface for the VM to add new memory regions, - * but without onlining it. - */ -int register_new_memory(int nid, struct mem_section *section) -{ -	return add_memory_section(nid, section, NULL, MEM_OFFLINE, HOTPLUG); -} -  int unregister_memory_section(struct mem_section *section)  {  	if (!present_section(section)) @@ -677,6 +677,7 @@ int unregister_memory_section(struct mem_section *section)  	return remove_memory_block(0, section, 0);  } +#endif /* CONFIG_MEMORY_HOTREMOVE */  /*   * offline one memory block. If the memory block has been offlined, do nothing.  |