|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH] target/i386: move nested exception check to x86_cpu_exec_interrupt |
Date: | Tue, 7 Mar 2017 06:24:05 +1100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
On 03/07/2017 02:57 AM, Alex Bennée wrote:
cs->exception_index = intno; env->error_code = error_code; env->exception_is_int = is_int; env->exception_next_eip = env->eip + next_eip_addend; + env->exception_retaddr = retaddr; cpu_loop_exit_restore(cs, retaddr);
Since you've restored state here, I don't see that you need to save the retaddr at all ...
+ if (!env->exception_is_int) { + cpu_svm_check_intercept_param(env, + SVM_EXIT_EXCP_BASE + cs->exception_index, + env->error_code, + env->exception_retaddr); + cs->exception_index = check_exception(env, cs->exception_index, + &env->error_code, + env->exception_retaddr); + } else { + cpu_svm_check_intercept_param(env, SVM_EXIT_SWINT, 0, + env->exception_retaddr); + }
... simply pass zero here instead. But do I see correctly from the thread that we don't have a reproducer? r~
[Prev in Thread] | Current Thread | [Next in Thread] |