Message ID | 1598581422-76264-1-git-send-email-robert.hu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: x86: emulating RDPID failure shall return #UD rather than #GP | expand |
On Thu, Aug 27, 2020 at 7:23 PM Robert Hoo <robert.hu@linux.intel.com> wrote: > > Per Intel's SDM, RDPID takes a #UD if it is unsupported, which is more or > less what KVM is emulating when MSR_TSC_AUX is not available. In fact, > there are no scenarios in which RDPID is supposed to #GP. > > Fixes: fb6d4d340e (KVM: x86: emulate RDPID) > Signed-off-by: Robert Hoo <robert.hu@linux.intel.com> Reviewed-by: Jim Mattson <jmattson@google.com>
On 28/08/20 04:23, Robert Hoo wrote: > Per Intel's SDM, RDPID takes a #UD if it is unsupported, which is more or > less what KVM is emulating when MSR_TSC_AUX is not available. In fact, > there are no scenarios in which RDPID is supposed to #GP. > > Fixes: fb6d4d340e (KVM: x86: emulate RDPID) > Signed-off-by: Robert Hoo <robert.hu@linux.intel.com> > --- > arch/x86/kvm/emulate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c > index d0e2825..571cb86 100644 > --- a/arch/x86/kvm/emulate.c > +++ b/arch/x86/kvm/emulate.c > @@ -3594,7 +3594,7 @@ static int em_rdpid(struct x86_emulate_ctxt *ctxt) > u64 tsc_aux = 0; > > if (ctxt->ops->get_msr(ctxt, MSR_TSC_AUX, &tsc_aux)) > - return emulate_gp(ctxt, 0); > + return emulate_ud(ctxt); > ctxt->dst.val = tsc_aux; > return X86EMUL_CONTINUE; > } > Queued, thanks. Paolo
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index d0e2825..571cb86 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -3594,7 +3594,7 @@ static int em_rdpid(struct x86_emulate_ctxt *ctxt) u64 tsc_aux = 0; if (ctxt->ops->get_msr(ctxt, MSR_TSC_AUX, &tsc_aux)) - return emulate_gp(ctxt, 0); + return emulate_ud(ctxt); ctxt->dst.val = tsc_aux; return X86EMUL_CONTINUE; }
Per Intel's SDM, RDPID takes a #UD if it is unsupported, which is more or less what KVM is emulating when MSR_TSC_AUX is not available. In fact, there are no scenarios in which RDPID is supposed to #GP. Fixes: fb6d4d340e (KVM: x86: emulate RDPID) Signed-off-by: Robert Hoo <robert.hu@linux.intel.com> --- arch/x86/kvm/emulate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)