diff --git a/[refs] b/[refs] index ca9e87dfe990..432a0cc01b96 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1f536b9e9f85456df93614b3c2f6a1a2b7d7cb9b +refs/heads/master: f5138e42211d4e8bfbd6ac5b3816348da1533433 diff --git a/trunk/drivers/base/memory.c b/trunk/drivers/base/memory.c index f17e3ea041c0..ed5de58c340f 100644 --- a/trunk/drivers/base/memory.c +++ b/trunk/drivers/base/memory.c @@ -295,11 +295,22 @@ static int memory_block_change_state(struct memory_block *mem, ret = memory_block_action(mem->start_section_nr, to_state); - if (ret) + if (ret) { mem->state = from_state_req; - else - mem->state = to_state; + goto out; + } + mem->state = to_state; + switch (mem->state) { + case MEM_OFFLINE: + kobject_uevent(&mem->dev.kobj, KOBJ_OFFLINE); + break; + case MEM_ONLINE: + kobject_uevent(&mem->dev.kobj, KOBJ_ONLINE); + break; + default: + break; + } out: mutex_unlock(&mem->state_mutex); return ret;