On 14/07/17 16:43, Christoffer Dall wrote: > On Fri, Jul 14, 2017 at 08:55:32AM +0100, Marc Zyngier wrote: >> On 13/07/17 20:20, Christoffer Dall wrote: >>> The timer irq_handler is supposed to mask the timer signal, but unfortunately >>> also disables the timer at the same time, even though we loop and wait on >>> ISTATUS to become set. >>> >>> According to the ARM ARM, "When the value of the ENABLE bit is 0, the >>> ISTATUS field is UNKNOWN." This test happens to work on AMD Seattle, but >>> doesn't work on Mustang or on QEMU with TCG. >> >> Note that this wording is a tightening of what was written in previous >> of the ARMv8 ARM. Version DDI0874B.a has the above, while DDI0487A.h >> doesn't, neither has the ARMv7 version. >> >> This may explain why this was initially written this way. >> > > ok, but even so, this patch should test things in a way that should work > on all systems, right? Oh, definitely. I'm not arguing that your fix is wrong, quite the opposite. It is just that the architecture got stricter over time, and SW should certainly take the pessimistic approach that is something can be UNKNOWN, it will. Thanks, M. -- Jazz is not dead. It just smells funny...