On 27 March 2015 at 19:10, Greg Bellows <greg.bell...@linaro.org> wrote: > Updated the interrupt handling to utilize and report through the target EL > exception field. This includes consolidating and cleaning up code where > needed. Target EL is now calculated once in arm_cpu_exec_interrupt() and > do_interrupt was updated to use the target_el exception field. The > necessary code from arm_excp_target_el() was merged in where needed and the > function removed.
> --- a/target-arm/helper-a64.c > +++ b/target-arm/helper-a64.c > @@ -463,7 +463,7 @@ void aarch64_cpu_do_interrupt(CPUState *cs) > { > ARMCPU *cpu = ARM_CPU(cs); > CPUARMState *env = &cpu->env; > - unsigned int new_el = arm_excp_target_el(cs, cs->exception_index); > + unsigned int new_el = MAX(env->exception.target_el, 1); Surely we should never be able to get here with target_el zero? Rest of the patch looks OK. -- PMM