[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] [PATCH v2 6/6] arm: fix aa64_generate_debug_
From: |
Richard Henderson |
Subject: |
Re: [Qemu-arm] [Qemu-devel] [PATCH v2 6/6] arm: fix aa64_generate_debug_exceptions to work with EL2 |
Date: |
Thu, 8 Nov 2018 18:25:23 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 |
On 11/8/18 5:33 PM, Alex Bennée wrote:
> The test was incomplete and incorrectly caused debug exceptions to be
> generated when returning to EL2 after a failed attempt to single-step
> an EL1 instruction. Fix this while cleaning up the function a little.
>
> Signed-off-by: Alex Bennée <address@hidden>
> ---
> target/arm/cpu.h | 27 +++++++++++++++++----------
> 1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/target/arm/cpu.h b/target/arm/cpu.h
> index 1efff21a18..a6d8eb14f6 100644
> --- a/target/arm/cpu.h
> +++ b/target/arm/cpu.h
> @@ -2764,23 +2764,33 @@ static inline bool arm_v7m_csselr_razwi(ARMCPU *cpu)
> return (cpu->clidr & R_V7M_CLIDR_CTYPE_ALL_MASK) != 0;
> }
>
> +/* See AArch64.GenerateDebugExceptionsFrom() in ARM ARM pseudocode */
> static inline bool aa64_generate_debug_exceptions(CPUARMState *env)
> {
> + int cur_el = arm_current_el(env);
> + int debug_el;
> +
> if (arm_is_secure(env)) {
> /* MDCR_EL3.SDD disables debug events from Secure state */
> if (extract32(env->cp15.mdcr_el3, 16, 1) != 0
> - || arm_current_el(env) == 3) {
> + || cur_el == 3) {
Hmm. Perhaps better as
if (cur_el == 3) {
return false;
}
/* MDCR_EL3.SDD disables... */
if (arm_is_secure_below_el3(env)
&& extract32(env->cp15.mdcr_el3, 16, 1)) {
return false;
}
and of course more symbols would be nice, but it's not wrong as-is.
r~
- [Qemu-arm] [PATCH v2 2/6] target/arm64: hold BQL when calling do_interrupt(), (continued)
- [Qemu-arm] [PATCH v2 2/6] target/arm64: hold BQL when calling do_interrupt(), Alex Bennée, 2018/11/08
- [Qemu-arm] [PATCH v2 4/6] tests/guest-debug: fix scoping of failcount, Alex Bennée, 2018/11/08
- [Qemu-arm] [PATCH v2 5/6] arm: use symbolic MDCR_TDE in arm_debug_target_el, Alex Bennée, 2018/11/08
- [Qemu-arm] [PATCH v2 1/6] target/arm64: properly handle DBGVR RESS bits, Alex Bennée, 2018/11/08
- [Qemu-arm] [PATCH v2 6/6] arm: fix aa64_generate_debug_exceptions to work with EL2, Alex Bennée, 2018/11/08
- Re: [Qemu-arm] [Qemu-devel] [PATCH v2 6/6] arm: fix aa64_generate_debug_exceptions to work with EL2,
Richard Henderson <=