Re: [PATCH v2] x86: svm: use cr_interception for SVM_EXIT_CR0_SEL_WRITE

2015-03-13 Thread Marcelo Tosatti
On Fri, Mar 06, 2015 at 02:44:35PM -0600, Joel Schopp wrote:
 From: David Kaplan david.kap...@amd.com
 
 Another patch in my war on emulate_on_interception() use as a svm exit 
 handler.
 
 These were pulled out of a larger patch at the suggestion of Radim Krcmar, see
 https://lkml.org/lkml/2015/2/25/559
 
 Changes since v1:
   * fixed typo introduced after test, retested
 
 Signed-off-by: David Kaplan david.kap...@amd.com
 [separated out just cr_interception part from larger removal of
 INTERCEPT_CR0_WRITE, forward ported, tested]
 Signed-off-by: Joel Schopp joel.sch...@amd.com

Applied, thanks.

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] x86: svm: use cr_interception for SVM_EXIT_CR0_SEL_WRITE

2015-03-09 Thread Radim Krčmář
2015-03-06 14:44-0600, Joel Schopp:
 From: David Kaplan david.kap...@amd.com
 
 Another patch in my war on emulate_on_interception() use as a svm exit 
 handler.
 
 These were pulled out of a larger patch at the suggestion of Radim Krcmar, see
 https://lkml.org/lkml/2015/2/25/559
 
 Changes since v1:
   * fixed typo introduced after test, retested
 
 Signed-off-by: David Kaplan david.kap...@amd.com
 [separated out just cr_interception part from larger removal of
 INTERCEPT_CR0_WRITE, forward ported, tested]
 Signed-off-by: Joel Schopp joel.sch...@amd.com
 ---

(Existing nested handling is tangled, but looks like everything works,)

Reviewed-by: Radim Krčmář rkrc...@redhat.com

Thanks.
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] x86: svm: use cr_interception for SVM_EXIT_CR0_SEL_WRITE

2015-03-06 Thread Joel Schopp
From: David Kaplan david.kap...@amd.com

Another patch in my war on emulate_on_interception() use as a svm exit handler.

These were pulled out of a larger patch at the suggestion of Radim Krcmar, see
https://lkml.org/lkml/2015/2/25/559

Changes since v1:
* fixed typo introduced after test, retested

Signed-off-by: David Kaplan david.kap...@amd.com
[separated out just cr_interception part from larger removal of
INTERCEPT_CR0_WRITE, forward ported, tested]
Signed-off-by: Joel Schopp joel.sch...@amd.com
---
 arch/x86/kvm/svm.c |7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index d319e0c..16ad05b 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -2940,7 +2940,10 @@ static int cr_interception(struct vcpu_svm *svm)
return emulate_on_interception(svm);
 
reg = svm-vmcb-control.exit_info_1  SVM_EXITINFO_REG_MASK;
-   cr = svm-vmcb-control.exit_code - SVM_EXIT_READ_CR0;
+   if (svm-vmcb-control.exit_code == SVM_EXIT_CR0_SEL_WRITE)
+   cr = SVM_EXIT_WRITE_CR0 - SVM_EXIT_READ_CR0;
+   else
+   cr = svm-vmcb-control.exit_code - SVM_EXIT_READ_CR0;
 
err = 0;
if (cr = 16) { /* mov to cr */
@@ -3325,7 +3328,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm 
*svm) = {
[SVM_EXIT_READ_CR3] = cr_interception,
[SVM_EXIT_READ_CR4] = cr_interception,
[SVM_EXIT_READ_CR8] = cr_interception,
-   [SVM_EXIT_CR0_SEL_WRITE]= emulate_on_interception,
+   [SVM_EXIT_CR0_SEL_WRITE]= cr_interception,
[SVM_EXIT_WRITE_CR0]= cr_interception,
[SVM_EXIT_WRITE_CR3]= cr_interception,
[SVM_EXIT_WRITE_CR4]= cr_interception,

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html