mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
KVM: x86: Read CR4.DE in emulator if and only if accessing DR4 or DR5
Micro-optimize emulation of MOV DR instructions by checking CR4.DE if and only if DR4 or DR5 is being accessed. No functional change intended. Reviewed-by: Jim Mattson <jmattson@google.com> Link: https://patch.msgid.link/20260612230113.684301-9-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
b077cfed52
commit
7a642d8dcf
|
|
@ -3840,13 +3840,11 @@ static int check_dr_read(struct x86_emulate_ctxt *ctxt)
|
|||
{
|
||||
bool is_intel = ctxt->ops->guest_cpuid_is_intel_compatible(ctxt);
|
||||
int dr = ctxt->modrm_reg;
|
||||
u64 cr4;
|
||||
|
||||
if (dr > 7)
|
||||
return emulate_ud(ctxt);
|
||||
|
||||
cr4 = ctxt->ops->get_cr(ctxt, 4);
|
||||
if ((cr4 & X86_CR4_DE) && (dr == 4 || dr == 5))
|
||||
if ((dr == 4 || dr == 5) && (ctxt->ops->get_cr(ctxt, 4) & X86_CR4_DE))
|
||||
return emulate_ud(ctxt);
|
||||
|
||||
/* Intel CPUs prioritize the DR7.GD=1 #DB over the CPL>0 #GP. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user