|
|
b38b0f |
From 9d1e37615a8285d852b7d8f829b9f9aeed703f14 Mon Sep 17 00:00:00 2001
|
|
|
b38b0f |
From: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
b38b0f |
Date: Mon, 22 Jul 2019 18:22:04 +0100
|
|
|
b38b0f |
Subject: [PATCH 23/39] target/i386: rename HF_SVMI_MASK to HF_GUEST_MASK
|
|
|
b38b0f |
|
|
|
b38b0f |
RH-Author: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
b38b0f |
Message-id: <20190722182220.19374-3-pbonzini@redhat.com>
|
|
|
b38b0f |
Patchwork-id: 89620
|
|
|
b38b0f |
O-Subject: [RHEL-8.1.0 PATCH qemu-kvm v3 02/18] target/i386: rename HF_SVMI_MASK to HF_GUEST_MASK
|
|
|
b38b0f |
Bugzilla: 1689269
|
|
|
b38b0f |
RH-Acked-by: Peter Xu <zhexu@redhat.com>
|
|
|
b38b0f |
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
|
|
b38b0f |
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
|
|
b38b0f |
|
|
|
b38b0f |
This flag will be used for KVM's nested VMX migration; the HF_GUEST_MASK name
|
|
|
b38b0f |
is already used in KVM, adopt it in QEMU as well.
|
|
|
b38b0f |
|
|
|
b38b0f |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
b38b0f |
(cherry picked from commit f8dc4c645ec2956a6cd97e0ca0fdd4753181f735)
|
|
|
b38b0f |
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
|
b38b0f |
---
|
|
|
b38b0f |
target/i386/cpu.h | 4 ++--
|
|
|
b38b0f |
target/i386/excp_helper.c | 2 +-
|
|
|
b38b0f |
target/i386/seg_helper.c | 6 +++---
|
|
|
b38b0f |
target/i386/svm_helper.c | 6 +++---
|
|
|
b38b0f |
target/i386/translate.c | 4 ++--
|
|
|
b38b0f |
5 files changed, 11 insertions(+), 11 deletions(-)
|
|
|
b38b0f |
|
|
|
b38b0f |
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
|
|
b38b0f |
index 4f9df6e..923dfcd 100644
|
|
|
b38b0f |
--- a/target/i386/cpu.h
|
|
|
b38b0f |
+++ b/target/i386/cpu.h
|
|
|
b38b0f |
@@ -171,7 +171,7 @@ typedef enum X86Seg {
|
|
|
b38b0f |
#define HF_AC_SHIFT 18 /* must be same as eflags */
|
|
|
b38b0f |
#define HF_SMM_SHIFT 19 /* CPU in SMM mode */
|
|
|
b38b0f |
#define HF_SVME_SHIFT 20 /* SVME enabled (copy of EFER.SVME) */
|
|
|
b38b0f |
-#define HF_SVMI_SHIFT 21 /* SVM intercepts are active */
|
|
|
b38b0f |
+#define HF_GUEST_SHIFT 21 /* SVM intercepts are active */
|
|
|
b38b0f |
#define HF_OSFXSR_SHIFT 22 /* CR4.OSFXSR */
|
|
|
b38b0f |
#define HF_SMAP_SHIFT 23 /* CR4.SMAP */
|
|
|
b38b0f |
#define HF_IOBPT_SHIFT 24 /* an io breakpoint enabled */
|
|
|
b38b0f |
@@ -196,7 +196,7 @@ typedef enum X86Seg {
|
|
|
b38b0f |
#define HF_AC_MASK (1 << HF_AC_SHIFT)
|
|
|
b38b0f |
#define HF_SMM_MASK (1 << HF_SMM_SHIFT)
|
|
|
b38b0f |
#define HF_SVME_MASK (1 << HF_SVME_SHIFT)
|
|
|
b38b0f |
-#define HF_SVMI_MASK (1 << HF_SVMI_SHIFT)
|
|
|
b38b0f |
+#define HF_GUEST_MASK (1 << HF_GUEST_SHIFT)
|
|
|
b38b0f |
#define HF_OSFXSR_MASK (1 << HF_OSFXSR_SHIFT)
|
|
|
b38b0f |
#define HF_SMAP_MASK (1 << HF_SMAP_SHIFT)
|
|
|
b38b0f |
#define HF_IOBPT_MASK (1 << HF_IOBPT_SHIFT)
|
|
|
b38b0f |
diff --git a/target/i386/excp_helper.c b/target/i386/excp_helper.c
|
|
|
b38b0f |
index cb4d1b7..7153837 100644
|
|
|
b38b0f |
--- a/target/i386/excp_helper.c
|
|
|
b38b0f |
+++ b/target/i386/excp_helper.c
|
|
|
b38b0f |
@@ -53,7 +53,7 @@ static int check_exception(CPUX86State *env, int intno, int *error_code,
|
|
|
b38b0f |
|
|
|
b38b0f |
#if !defined(CONFIG_USER_ONLY)
|
|
|
b38b0f |
if (env->old_exception == EXCP08_DBLE) {
|
|
|
b38b0f |
- if (env->hflags & HF_SVMI_MASK) {
|
|
|
b38b0f |
+ if (env->hflags & HF_GUEST_MASK) {
|
|
|
b38b0f |
cpu_vmexit(env, SVM_EXIT_SHUTDOWN, 0, retaddr); /* does not return */
|
|
|
b38b0f |
}
|
|
|
b38b0f |
|
|
|
b38b0f |
diff --git a/target/i386/seg_helper.c b/target/i386/seg_helper.c
|
|
|
b38b0f |
index 600a4d7..f028045 100644
|
|
|
b38b0f |
--- a/target/i386/seg_helper.c
|
|
|
b38b0f |
+++ b/target/i386/seg_helper.c
|
|
|
b38b0f |
@@ -1239,7 +1239,7 @@ static void do_interrupt_all(X86CPU *cpu, int intno, int is_int,
|
|
|
b38b0f |
}
|
|
|
b38b0f |
if (env->cr[0] & CR0_PE_MASK) {
|
|
|
b38b0f |
#if !defined(CONFIG_USER_ONLY)
|
|
|
b38b0f |
- if (env->hflags & HF_SVMI_MASK) {
|
|
|
b38b0f |
+ if (env->hflags & HF_GUEST_MASK) {
|
|
|
b38b0f |
handle_even_inj(env, intno, is_int, error_code, is_hw, 0);
|
|
|
b38b0f |
}
|
|
|
b38b0f |
#endif
|
|
|
b38b0f |
@@ -1254,7 +1254,7 @@ static void do_interrupt_all(X86CPU *cpu, int intno, int is_int,
|
|
|
b38b0f |
}
|
|
|
b38b0f |
} else {
|
|
|
b38b0f |
#if !defined(CONFIG_USER_ONLY)
|
|
|
b38b0f |
- if (env->hflags & HF_SVMI_MASK) {
|
|
|
b38b0f |
+ if (env->hflags & HF_GUEST_MASK) {
|
|
|
b38b0f |
handle_even_inj(env, intno, is_int, error_code, is_hw, 1);
|
|
|
b38b0f |
}
|
|
|
b38b0f |
#endif
|
|
|
b38b0f |
@@ -1262,7 +1262,7 @@ static void do_interrupt_all(X86CPU *cpu, int intno, int is_int,
|
|
|
b38b0f |
}
|
|
|
b38b0f |
|
|
|
b38b0f |
#if !defined(CONFIG_USER_ONLY)
|
|
|
b38b0f |
- if (env->hflags & HF_SVMI_MASK) {
|
|
|
b38b0f |
+ if (env->hflags & HF_GUEST_MASK) {
|
|
|
b38b0f |
CPUState *cs = CPU(cpu);
|
|
|
b38b0f |
uint32_t event_inj = x86_ldl_phys(cs, env->vm_vmcb +
|
|
|
b38b0f |
offsetof(struct vmcb,
|
|
|
b38b0f |
diff --git a/target/i386/svm_helper.c b/target/i386/svm_helper.c
|
|
|
b38b0f |
index 3504923..5b8458d 100644
|
|
|
b38b0f |
--- a/target/i386/svm_helper.c
|
|
|
b38b0f |
+++ b/target/i386/svm_helper.c
|
|
|
b38b0f |
@@ -206,7 +206,7 @@ void helper_vmrun(CPUX86State *env, int aflag, int next_eip_addend)
|
|
|
b38b0f |
));
|
|
|
b38b0f |
|
|
|
b38b0f |
/* enable intercepts */
|
|
|
b38b0f |
- env->hflags |= HF_SVMI_MASK;
|
|
|
b38b0f |
+ env->hflags |= HF_GUEST_MASK;
|
|
|
b38b0f |
|
|
|
b38b0f |
env->tsc_offset = x86_ldq_phys(cs, env->vm_vmcb +
|
|
|
b38b0f |
offsetof(struct vmcb, control.tsc_offset));
|
|
|
b38b0f |
@@ -481,7 +481,7 @@ void cpu_svm_check_intercept_param(CPUX86State *env, uint32_t type,
|
|
|
b38b0f |
{
|
|
|
b38b0f |
CPUState *cs = CPU(x86_env_get_cpu(env));
|
|
|
b38b0f |
|
|
|
b38b0f |
- if (likely(!(env->hflags & HF_SVMI_MASK))) {
|
|
|
b38b0f |
+ if (likely(!(env->hflags & HF_GUEST_MASK))) {
|
|
|
b38b0f |
return;
|
|
|
b38b0f |
}
|
|
|
b38b0f |
switch (type) {
|
|
|
b38b0f |
@@ -674,7 +674,7 @@ void do_vmexit(CPUX86State *env, uint32_t exit_code, uint64_t exit_info_1)
|
|
|
b38b0f |
|
|
|
b38b0f |
/* Reload the host state from vm_hsave */
|
|
|
b38b0f |
env->hflags2 &= ~(HF2_HIF_MASK | HF2_VINTR_MASK);
|
|
|
b38b0f |
- env->hflags &= ~HF_SVMI_MASK;
|
|
|
b38b0f |
+ env->hflags &= ~HF_GUEST_MASK;
|
|
|
b38b0f |
env->intercept = 0;
|
|
|
b38b0f |
env->intercept_exceptions = 0;
|
|
|
b38b0f |
cs->interrupt_request &= ~CPU_INTERRUPT_VIRQ;
|
|
|
b38b0f |
diff --git a/target/i386/translate.c b/target/i386/translate.c
|
|
|
b38b0f |
index c9ed8dc..2a1b39e 100644
|
|
|
b38b0f |
--- a/target/i386/translate.c
|
|
|
b38b0f |
+++ b/target/i386/translate.c
|
|
|
b38b0f |
@@ -621,7 +621,7 @@ static void gen_check_io(DisasContext *s, TCGMemOp ot, target_ulong cur_eip,
|
|
|
b38b0f |
tcg_abort();
|
|
|
b38b0f |
}
|
|
|
b38b0f |
}
|
|
|
b38b0f |
- if(s->flags & HF_SVMI_MASK) {
|
|
|
b38b0f |
+ if(s->flags & HF_GUEST_MASK) {
|
|
|
b38b0f |
gen_update_cc_op(s);
|
|
|
b38b0f |
gen_jmp_im(cur_eip);
|
|
|
b38b0f |
svm_flags |= (1 << (4 + ot));
|
|
|
b38b0f |
@@ -2305,7 +2305,7 @@ gen_svm_check_intercept_param(DisasContext *s, target_ulong pc_start,
|
|
|
b38b0f |
uint32_t type, uint64_t param)
|
|
|
b38b0f |
{
|
|
|
b38b0f |
/* no SVM activated; fast case */
|
|
|
b38b0f |
- if (likely(!(s->flags & HF_SVMI_MASK)))
|
|
|
b38b0f |
+ if (likely(!(s->flags & HF_GUEST_MASK)))
|
|
|
b38b0f |
return;
|
|
|
b38b0f |
gen_update_cc_op(s);
|
|
|
b38b0f |
gen_jmp_im(pc_start - s->cs_base);
|
|
|
b38b0f |
--
|
|
|
b38b0f |
1.8.3.1
|
|
|
b38b0f |
|