• Paul Mackerras's avatar
    KVM: PPC: Book3S PR: Fix failure status setting in treclaim. emulation · a50623fb
    Paul Mackerras authored
    The treclaim. emulation needs to record failure status in the TEXASR
    register if the transaction had not previously failed.  However, the
    current code first does kvmppc_save_tm_pr() (which does a treclaim.
    itself) and then checks the failure summary bit in TEXASR after that.
    Since treclaim. itself causes transaction failure, the FS bit is
    always set, so we were never updating TEXASR with the failure cause
    supplied by the guest as the RA parameter to the treclaim. instruction.
    This caused the tm-unavailable test in tools/testing/selftests/powerpc/tm
    to fail.
    
    To fix this, we need to read TEXASR before calling kvmppc_save_tm_pr(),
    and base the final value of TEXASR on that value.
    
    Fixes: 03c81682 ("KVM: PPC: Book3S PR: Add emulation for treclaim.")
    Reviewed-by: default avatarSimon Guo <wei.guo.simon@gmail.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    a50623fb
book3s_emulate.c 24.8 KB