FAILED: patch "[PATCH] KVM: SVM: Truncate GPR value for DR and CR accesses in" failed to apply to 5.12-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 0884335a2e653b8a045083aa1d57ce74269ac81d Mon Sep 17 00:00:00 2001
From: Sean Christopherson <[email protected]>
Date: Wed, 21 Apr 2021 19:21:22 -0700
Subject: [PATCH] KVM: SVM: Truncate GPR value for DR and CR accesses in
!64-bit mode
Drop bits 63:32 on loads/stores to/from DRs and CRs when the vCPU is not in 64-bit mode. The APM states bits 63:32 are dropped for both DRs and CRs:
In 64-bit mode, the operand size is fixed at 64 bits without the need for a REX prefix. In non-64-bit mode, the operand size is fixed at 32 bits and the upper 32 bits of the destination are forced to 0.
Message-Id: <[email protected]>
arch/x86/kvm/svm/svm.c +4 -4
@@ -2451,7 +2451,7 @@ static int cr_interception(struct kvm_vcpu *vcpu) err =0 ;if (cr >=16 ) {/* mov to cr */ cr -=16 ; - val =kvm_register_read (vcpu, reg); + val =kvm_register_readl (vcpu, reg);trace_kvm_cr_write (cr, val);switch (cr) {case 0 :
@@ -2497,7 +2497,7 @@ static int cr_interception(struct kvm_vcpu *vcpu)kvm_queue_exception (vcpu,UD_VECTOR );return 1 ; } -kvm_register_write (vcpu, reg, val); +kvm_register_writel (vcpu, reg, val);trace_kvm_cr_read (cr, val); }return kvm_complete_insn_gp (vcpu, err);
@@ -2563,11 +2563,11 @@ static int dr_interception(struct kvm_vcpu *vcpu) dr = svm->vmcb->control.exit_code -SVM_EXIT_READ_DR0 ;if (dr >=16 ) {/* mov to DRn */ dr -=16 ; - val =kvm_register_read (vcpu, reg); + val =kvm_register_readl (vcpu, reg); err =kvm_set_dr (vcpu, dr, val); }else {kvm_get_dr (vcpu, dr, &val); -kvm_register_write (vcpu, reg, val); +kvm_register_writel (vcpu, reg, val); }return kvm_complete_insn_gp (vcpu, err);
Hi Greg,
Quoted 5 lines · On Wed, May 12, 2021 at 12:43:53PM +0200, [email protected] wrote:
The patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Here is the backported patch.
--
Regards
Sudip
From 516f853bf3b71f89489d94f3234b77a9961c4619 Mon Sep 17 00:00:00 2001
From: Sean Christopherson <[email protected]>
Date: Wed, 21 Apr 2021 19:21:22 -0700
Subject: [PATCH] KVM: SVM: Truncate GPR value for DR and CR accesses in
!64-bit mode
commit 0884335a2e653b8a045083aa1d57ce74269ac81d upstream.
Drop bits 63:32 on loads/stores to/from DRs and CRs when the vCPU is not in 64-bit mode. The APM states bits 63:32 are dropped for both DRs and CRs:
In 64-bit mode, the operand size is fixed at 64 bits without the need for a REX prefix. In non-64-bit mode, the operand size is fixed at 32 bits and the upper 32 bits of the destination are forced to 0.
Message-Id: <[email protected]>
--- arch/x86/kvm/svm/svm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
arch/x86/kvm/svm/svm.c +4 -4
@@ -2532,7 +2532,7 @@ static int cr_interception(struct vcpu_svm *svm) err =0 ;if (cr >=16 ) {/* mov to cr */ cr -=16 ; - val =kvm_register_read (&svm->vcpu, reg); + val =kvm_register_readl (&svm->vcpu, reg);trace_kvm_cr_write (cr, val);switch (cr) {case 0 :
@@ -2578,7 +2578,7 @@ static int cr_interception(struct vcpu_svm *svm)kvm_queue_exception (&svm->vcpu,UD_VECTOR );return 1 ; } -kvm_register_write (&svm->vcpu, reg, val); +kvm_register_writel (&svm->vcpu, reg, val);trace_kvm_cr_read (cr, val); }return kvm_complete_insn_gp (&svm->vcpu, err);
@@ -2643,11 +2643,11 @@ static int dr_interception(struct vcpu_svm *svm) dr = svm->vmcb->control.exit_code -SVM_EXIT_READ_DR0 ;if (dr >=16 ) {/* mov to DRn */ dr -=16 ; - val =kvm_register_read (&svm->vcpu, reg); + val =kvm_register_readl (&svm->vcpu, reg); err =kvm_set_dr (&svm->vcpu, dr, val); }else {kvm_get_dr (&svm->vcpu, dr, &val); -kvm_register_write (&svm->vcpu, reg, val); +kvm_register_writel (&svm->vcpu, reg, val); }return kvm_complete_insn_gp (&svm->vcpu, err);
Signature · 1 line
2.30.2
Sean Christopherson
maintainerQuoted 10 lines · Sudip Mukherjee
Hi Greg,
Quoted 5 lines · On Wed, May 12, 2021 at 12:43:53PM +0200, [email protected] wrote:
The patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.Here is the backported patch.
All four backports look good, thanks!
Greg KH
maintainerQuoted 5 lines · Sean Christopherson
Quoted 4 lines · Sudip Mukherjee
Hi Greg,
Quoted 1 line · On Wed, May 12, 2021 at 12:43:53PM +0200, [email protected] wrote:
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
The patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.Here is the backported patch.
All four backports look good, thanks!
All now queued up, thanks.
greg k-h