diff options
author | Reza Arbab <[email protected]> | 2016-10-07 17:00:15 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2016-10-07 18:46:28 -0700 |
commit | d66ba15bde22703b3c0cec6782519cb0765a6777 (patch) | |
tree | a739a48527e3fd9aeb4f8f0dd160ec5824ce60f8 | |
parent | 0247f3f4d78a475cd3181dc9fc162fdef773aaaa (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.c | 5 |
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; } |