|
@@ -20,6 +20,7 @@
|
|
|
#include <linux/kobject.h>
|
|
|
#include <linux/memory_hotplug.h>
|
|
|
#include <linux/mm.h>
|
|
|
+#include <linux/mutex.h>
|
|
|
#include <asm/atomic.h>
|
|
|
#include <asm/uaccess.h>
|
|
|
|
|
@@ -205,7 +206,7 @@ static int memory_block_change_state(struct memory_block *mem,
|
|
|
unsigned long to_state, unsigned long from_state_req)
|
|
|
{
|
|
|
int ret = 0;
|
|
|
- down(&mem->state_sem);
|
|
|
+ mutex_lock(&mem->state_mutex);
|
|
|
|
|
|
if (mem->state != from_state_req) {
|
|
|
ret = -EINVAL;
|
|
@@ -217,7 +218,7 @@ static int memory_block_change_state(struct memory_block *mem,
|
|
|
mem->state = to_state;
|
|
|
|
|
|
out:
|
|
|
- up(&mem->state_sem);
|
|
|
+ mutex_unlock(&mem->state_mutex);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -341,7 +342,7 @@ static int add_memory_block(unsigned long node_id, struct mem_section *section,
|
|
|
|
|
|
mem->phys_index = __section_nr(section);
|
|
|
mem->state = state;
|
|
|
- init_MUTEX(&mem->state_sem);
|
|
|
+ mutex_init(&mem->state_mutex);
|
|
|
mem->phys_device = phys_device;
|
|
|
|
|
|
ret = register_memory(mem, section, NULL);
|