On 14/06/2017 14:14, Alex Bennée wrote: >> Then Emilio's patch, if a bit of a heavy hammer, is correct. After >> aa64_daif_write needs you need an exit_tb so that arm_cpu_exec_interrupt >> is executed again. > > This is a case of cpu->interrupt_request being pending but not having > set cpu->icount_decr yet to signal the exit.
Rather than "yet", "anymore". So far it has always been an invariant that anything that re-enabled an interrupt had to do exit_tb. > Wouldn't another approach > (that didn't involve futzing with each front-end) to be to check > cpu->interrupt_request and force the exit in lookup_tb_ptr? That would cause an unnecessary slowdown in code that runs with interrupts disabled but does a lot of indirect jumps... ppc's SLOF firmware probably qualifies. Paolo