qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] target/arm: fix missing exception class


From: Peter Maydell
Subject: Re: [PATCH] target/arm: fix missing exception class
Date: Mon, 24 May 2021 10:41:58 +0100

On Mon, 24 May 2021 at 09:42, Jamie Iles <jamie@nuviainc.com> wrote:
>
> The DAIF and PAC checks used raise_exception_ra to raise an exception
> and unwind CPU state but raise_exception_ra is currently designed for
> handling data aborts as the syndrome is partially precomputed and
> encoded in the TB and then merged in merge_syn_data_abort when handling
> the data abort.  Using raise_exception_ra for DAIF and PAC checks
> results in an empty syndrome being retrieved from data[2] in
> restore_state_to_opc and setting ESR to 0.  This manifested as:
>
>   kvm [571]: Unknown exception class: esr: 0x000000 –
>   Unknown/Uncategorized
>
> when launching a KVM guest when the host qemu used a CPU supporting
> EL2+pointer authentication and enabling pointer authentication in the
> guest.

raise_exception() and raise_exception_ra() are supposed to have
the same semantics apart from one of them being passed a return
address. So perhaps we should look at trying to fix this by
making raise_exception_ra() not first carefully set and then
very opaquely unconditionally trash env->exception.syndrome...

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]