[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 09/11] target/i386: sysret and sysexit are privileged
From: |
Paolo Bonzini |
Subject: |
[PATCH v3 09/11] target/i386: sysret and sysexit are privileged |
Date: |
Fri, 23 Jun 2023 15:17:09 +0200 |
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/tcg/translate.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index a20b5af71e7..66800392bb9 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -5685,7 +5685,7 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
if (LMA(s) && env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1) {
goto illegal_op;
}
- if (!PE(s)) {
+ if (!PE(s) || CPL(s) != 0) {
gen_exception_gpf(s);
} else {
gen_helper_sysexit(cpu_env, tcg_constant_i32(dflag - 1));
@@ -5711,7 +5711,7 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
if (!LMA(s) && env->cpuid_vendor1 == CPUID_VENDOR_INTEL_1) {
goto illegal_op;
}
- if (!PE(s)) {
+ if (!PE(s) || CPL(s) != 0) {
gen_exception_gpf(s);
} else {
gen_helper_sysret(cpu_env, tcg_constant_i32(dflag - 1));
--
2.41.0
- [PATCH v3 01/11] target/i386: fix INVD vmexit, (continued)
- [PATCH v3 01/11] target/i386: fix INVD vmexit, Paolo Bonzini, 2023/06/23
- [PATCH v3 02/11] target/i386: TCG supports 3DNow! prefetch(w), Paolo Bonzini, 2023/06/23
- [PATCH v3 05/11] target/i386: TCG supports XSAVEERPTR, Paolo Bonzini, 2023/06/23
- [PATCH v3 03/11] target/i386: TCG supports RDSEED, Paolo Bonzini, 2023/06/23
- [PATCH v3 06/11] target/i386: TCG supports WBNOINVD, Paolo Bonzini, 2023/06/23
- [PATCH v3 04/11] target/i386: do not accept RDSEED if CPUID bit absent, Paolo Bonzini, 2023/06/23
- [PATCH v3 07/11] target/i386: Intel only supports SYSCALL/SYSRET in long mode, Paolo Bonzini, 2023/06/23
- [PATCH v3 08/11] target/i386: AMD only supports SYSENTER/SYSEXIT in 32-bit mode, Paolo Bonzini, 2023/06/23
- [PATCH v3 09/11] target/i386: sysret and sysexit are privileged,
Paolo Bonzini <=
- [PATCH v3 10/11] target/i386: implement RDPID in TCG, Paolo Bonzini, 2023/06/23
- [PATCH v3 11/11] target/i386: implement SYSCALL/SYSRET in 32-bit emulators, Paolo Bonzini, 2023/06/23