[PATCH v2 4/6] KVM: x86: Use kvm_dr{6,7}_valid() to check DR{4,5,6,7} write values in emulator

From: Sean Christopherson

Date: Wed Jun 03 2026 - 19:13:39 EST


Use kvm_dr{6,7}_valid() to validate the incoming DR{4,5,6,7} value in the
emulator instead of open coding an equivalent check. In the unlikely event
that the behavior of DR6/7 (and their aliases) changes in the future, using
common helpers will hopefully make it less likely the emulator logic will
be overlooked.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---
arch/x86/kvm/emulate.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index a1bccab0eefe..1df2dcfd8bef 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -3861,10 +3861,13 @@ static int check_dr_write(struct x86_emulate_ctxt *ctxt)

switch (ctxt->modrm_reg) {
case 4:
- case 5:
case 6:
+ if (!kvm_dr6_valid(new_val))
+ return emulate_gp(ctxt, 0);
+ break;
+ case 5:
case 7:
- if (new_val & 0xffffffff00000000ULL)
+ if (!kvm_dr7_valid(new_val))
return emulate_gp(ctxt, 0);
break;
default:
--
2.54.0.1032.g2f8565e1d1-goog