aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReza Arbab <[email protected]>2016-10-07 17:00:15 -0700
committerLinus Torvalds <[email protected]>2016-10-07 18:46:28 -0700
commitd66ba15bde22703b3c0cec6782519cb0765a6777 (patch)
treea739a48527e3fd9aeb4f8f0dd160ec5824ce60f8
parent0247f3f4d78a475cd3181dc9fc162fdef773aaaa (diff)
memory-hotplug: fix store_mem_state() return value
If store_mem_state() is called to online memory which is already online, it will return 1, the value it got from device_online(). This is wrong because store_mem_state() is a device_attribute .store function. Thus a non-negative return value represents input bytes read. Set the return value to -EINVAL in this case. Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Reza Arbab <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: Vitaly Kuznetsov <[email protected]> Cc: David Rientjes <[email protected]> Cc: Yaowei Bai <[email protected]> Cc: Joonsoo Kim <[email protected]> Cc: Dan Williams <[email protected]> Cc: Xishi Qiu <[email protected]> Cc: David Vrabel <[email protected]> Cc: Chen Yucong <[email protected]> Cc: Andrew Banman <[email protected]> Cc: Seth Jennings <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r--drivers/base/memory.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index dc75de9059cd..62c63c0c5c22 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -361,8 +361,11 @@ store_mem_state(struct device *dev,
err:
unlock_device_hotplug();
- if (ret)
+ if (ret < 0)
return ret;
+ if (ret)
+ return -EINVAL;
+
return count;
}