On Thu, Dec 04, 2025 at 03:54:27PM +0000, Alex Bennée wrote:
> PC alignment faults have priority over instruction aborts and we have
> code to deal with this in the translation front-ends. However during
> tb_lookup we can see a potentially faulting probe which doesn't get a
> MemOp set. If the page isn't available this results in
> EC_INSNABORT (0x20) instead of EC_PCALIGNMENT (0x22).
> 
> As there is no easy way to set the appropriate MemOp in the
> instruction fetch probe path lets just detect it in
> arm_cpu_tlb_fill_align() and set memop appropriately.
> 
> Fixes: https://gitlab.com/qemu-project/qemu/-/issues/3233
> Signed-off-by: Alex Bennée <[email protected]>

Seems to give a PC alignment fault when adapting both pcalign-a64.c
(branching to 0x1) and pcalign-a32.c (branching to 0x2) where previously
it gave an instruction abort. Whether there are other unintended
consequences of checking for the fault here I will leave to others
(which is in part why I filed an issue for this rather than naively
making a similar change myself).

Tested-by: Jessica Clarke <[email protected]>

Reply via email to