• Seth Jennings's avatar
    drivers: base: use standard device online/offline for state change · fa2be40f
    Seth Jennings authored
    There are two ways to set the online/offline state for a memory block:
    echo 0|1 > online and echo online|online_kernel|online_movable|offline >
    state.
    
    The state attribute can online a memory block with extra data, the
    "online type", where the online attribute uses a default online type of
    ONLINE_KEEP, same as echo online > state.
    
    Currently there is a state_mutex that provides consistency between the
    memory block state and the underlying memory.
    
    The problem is that this code does a lot of things that the common
    device layer can do for us, such as the serialization of the
    online/offline handlers using the device lock, setting the dev->offline
    field, and calling kobject_uevent().
    
    This patch refactors the online/offline code to allow the common
    device_[online|offline] functions to be used.  The result is a simpler
    and more common code path for the two state setting mechanisms.  It also
    removes the state_mutex from the struct memory_block as the memory block
    device lock provides the state consistency.
    
    No functional change is intended by this patch.
    Signed-off-by: default avatarSeth Jennings <sjenning@linux.vnet.ibm.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    fa2be40f
memory.c 17.8 KB