lkml.org 
[lkml]   [2019]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 1/7] x86: KVM: svm: don't pretend to advance RIP in case wrmsr_interception() results in #GP
    Date
    svm->next_rip is only used by skip_emulated_instruction() and in case
    kvm_set_msr() fails we rightfully don't do that. Move svm->next_rip
    advancement to 'else' branch to avoid creating false impression that
    it's always advanced (and make it look like rdmsr_interception()).

    This is a preparatory change to removing hardcoded RIP advancement
    from instruction intercepts, no functional change.

    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Sean Christopherson <sean.j.christopherson@intel.com>
    ---
    arch/x86/kvm/svm.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
    index 7eafc6907861..7e843b340490 100644
    --- a/arch/x86/kvm/svm.c
    +++ b/arch/x86/kvm/svm.c
    @@ -4447,13 +4447,13 @@ static int wrmsr_interception(struct vcpu_svm *svm)
    msr.index = ecx;
    msr.host_initiated = false;

    - svm->next_rip = kvm_rip_read(&svm->vcpu) + 2;
    if (kvm_set_msr(&svm->vcpu, &msr)) {
    trace_kvm_msr_write_ex(ecx, data);
    kvm_inject_gp(&svm->vcpu, 0);
    return 1;
    } else {
    trace_kvm_msr_write(ecx, data);
    + svm->next_rip = kvm_rip_read(&svm->vcpu) + 2;
    return kvm_skip_emulated_instruction(&svm->vcpu);
    }
    }
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-08-13 15:55    [W:3.298 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site