From 5a60ecec4690c0af65e625781b361f25876653e4 Mon Sep 17 00:00:00 2001 From: Michael Holzheu Date: Thu, 12 Jan 2012 17:20:23 -0800 Subject: [PATCH] --- yaml --- r: 284423 b: refs/heads/master c: f5138e42211d4e8bfbd6ac5b3816348da1533433 h: refs/heads/master i: 284421: 316af8739bc27a728d1b0584ef761797f05e5906 284419: c03b9e32baa42b3b5c52e294b21e01035ea1305a 284415: c7a42c4c1fd28dd74c21ce5b4306685bb41095a0 v: v3 --- [refs] | 2 +- trunk/drivers/base/memory.c | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) 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;