Re: [RESEND PATCH v2] memory-hotplug: fix store_mem_state() return value

From: David Rientjes
Date: Wed Aug 31 2016 - 20:03:36 EST


On Wed, 31 Aug 2016, Reza Arbab wrote:

> > The correct fix is for store_mem_state() to return -EINVAL when
> > device_online() returns non-zero.
>
> Let me put it to you this way--which one of these sysfs operations is behaving
> correctly?
>
> # cd /sys/devices/system/memory/memory0
> # cat online
> 1
> # echo 1 > online; echo $?
> 0
>
> or
>
> # cd /sys/devices/system/memory/memory0
> # cat state
> online
> # echo online > state; echo $?
> -bash: echo: write error: Invalid argument
> 1
>
> One of them should change to match the other.
>

Nope, the return value of changing state from online to online was
established almost 11 years ago in commit 3947be1969a9. This was broken
by commit fa2be40fe7c0 ("drivers: base: use standard device online/offline
for state change") which was not intended to introduce a functional
change, but it did (memory_block_change_state() would have returned
EINVAL, device_online() does not).