On 02/16/2016 11:34 AM, Konstantin Khorenko wrote:
This is a part of
commit a449c7aa51e10c9bde0ea9bee4e682d6d067ebab
Author: Nadav Amit <na...@cs.technion.ac.il>
Date: Wed Jun 18 17:19:24 2014 +0300
KVM: x86: Hypercall handling does not considers opsize correctly
Currently, the hypercall handling routine only considers LME as an
indication
to whether the guest uses 32/64-bit mode. This is incosistent with
hyperv
hypercalls handling and against the common sense of considering
cs.l as well.
This patch uses is_64_bit_mode instead of is_long_mode for that
matter. In
addition, the result is masked in respect to the guest execution
mode. Last, it
changes kvm_hv_hypercall to use is_64_bit_mode as well to simplify
the code.
Signed-off-by: Nadav Amit <na...@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
What about other hunks of this commit?
It's not related with Hyper-V SynIC support, so please
skip this patch too. I have tested that all patches can be
applied and compiled without these two:
'[PATCH rh7 v1 02/36] kvm/x86: Vcpu based page access routines usage'
'[PATCH rh7 v1 05/36] kvm/x86: Use is_64_bit_mode() helper'
--
Best regards,
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
On 02/10/2016 06:17 PM, Andrey Smetanin wrote:
Signed-off-by: Andrey Smetanin <asmeta...@virtuozzo.com>
---
arch/x86/kvm/hyperv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 8102d69..a8160d2 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -321,7 +321,6 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
u64 param, ingpa, outgpa, ret;
uint16_t code, rep_idx, rep_cnt, res = HV_STATUS_SUCCESS,
rep_done = 0;
bool fast, longmode;
- int cs_db, cs_l;
/*
* hypercall generates UD from non zero cpl and real mode
@@ -332,8 +331,7 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
return 0;
}
- kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l);
- longmode = is_long_mode(vcpu) && cs_l == 1;
+ longmode = is_64_bit_mode(vcpu);
if (!longmode) {
param = ((u64)kvm_register_read(vcpu, VCPU_REGS_RDX) << 32) |
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel