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).

Reply via email to