From a27161c7a0ba396e8f12d36febe3774b68d77040 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Tue, 3 Jul 2018 01:29:55 -0400 Subject: [PATCH] target-i386: Mark cpu_vmexit noreturn It calls cpu_loop_exit in system emulation mode (and should never be called in user emulation mode). Backports commit 50b3de6e5cd464dcc20e3a48f5a09e0299a184ac from qemu --- qemu/target/i386/cpu.h | 4 ++-- qemu/target/i386/svm_helper.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/qemu/target/i386/cpu.h b/qemu/target/i386/cpu.h index 7ada07d8..98b8dc30 100644 --- a/qemu/target/i386/cpu.h +++ b/qemu/target/i386/cpu.h @@ -1765,8 +1765,8 @@ static inline void cpu_set_fpuc(CPUX86State *env, uint16_t fpuc) /* svm_helper.c */ void cpu_svm_check_intercept_param(CPUX86State *env1, uint32_t type, uint64_t param, uintptr_t retaddr); -void cpu_vmexit(CPUX86State *nenv, uint32_t exit_code, uint64_t exit_info_1, - uintptr_t retaddr); +void QEMU_NORETURN cpu_vmexit(CPUX86State *nenv, uint32_t exit_code, + uint64_t exit_info_1, uintptr_t retaddr); void do_vmexit(CPUX86State *env, uint32_t exit_code, uint64_t exit_info_1); /* seg_helper.c */ diff --git a/qemu/target/i386/svm_helper.c b/qemu/target/i386/svm_helper.c index e18ba9e3..8307f95d 100644 --- a/qemu/target/i386/svm_helper.c +++ b/qemu/target/i386/svm_helper.c @@ -63,6 +63,7 @@ void helper_invlpga(CPUX86State *env, int aflag) void cpu_vmexit(CPUX86State *nenv, uint32_t exit_code, uint64_t exit_info_1, uintptr_t retaddr) { + assert(0); } void helper_svm_check_intercept_param(CPUX86State *env, uint32_t type,