• Tyrel Datwyler's avatar
    powerpc/pseries: Simplify check for suspendability during suspend/migration · c03e7374
    Tyrel Datwyler authored
    During suspend/migration operation we must wait for the VASI state reported
    by the hypervisor to become Suspending prior to making the ibm,suspend-me
    RTAS call. Calling routines to rtas_ibm_supend_me() pass a vasi_state variable
    that exposes the VASI state to the caller. This is unnecessary as the caller
    only really cares about the following three conditions; if there is an error
    we should bailout, success indicating we have suspended and woken back up so
    proceed to device tree update, or we are not suspendable yet so try calling
    rtas_ibm_suspend_me again shortly.
    
    This patch removes the extraneous vasi_state variable and simply uses the
    return code to communicate how to proceed. We either succeed, fail, or get
    -EAGAIN in which case we sleep for a second before trying to call
    rtas_ibm_suspend_me again. The behaviour of ppc_rtas() remains the same,
    but migrate_store() now returns the propogated error code on failure.
    Previously -1 was returned from migrate_store() in the  failure case which
    equates to -EPERM and was clearly wrong.
    Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Cc: Nathan Fontenont <nfont@linux.vnet.ibm.com>
    Cc: Cyril Bur <cyrilbur@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    c03e7374
rtas.c 28.2 KB