[PATCH v3 40/42] KVM: arm64: Allow sysreg ranges for FGT descriptors
Ben Horgan
ben.horgan at arm.com
Tue Apr 29 06:08:42 PDT 2025
Hi Marc,
On 4/26/25 13:28, Marc Zyngier wrote:
> Just like we allow sysreg ranges for Coarse Grained Trap descriptors,
> allow them for Fine Grain Traps as well.
>
> This comes with a warning that not all ranges are suitable for this
> particular definition of ranges.
>
> Signed-off-by: Marc Zyngier <maz at kernel.org>
> ---
> arch/arm64/kvm/emulate-nested.c | 120 +++++++++++---------------------
> 1 file changed, 39 insertions(+), 81 deletions(-)
>
> diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c
> index e2a843675da96..9c7ecfccbd6e9 100644
> --- a/arch/arm64/kvm/emulate-nested.c
> +++ b/arch/arm64/kvm/emulate-nested.c
> @@ -622,6 +622,11 @@ struct encoding_to_trap_config {
> const unsigned int line;
> };
>
> +/*
> + * WARNING: using ranges is a treacherous endeavour, as sysregs that
> + * are part of an architectural range are not necessarily contiguous
> + * in the [Op0,Op1,CRn,CRm,Ops] space. Tread carefully.
> + */
> #define SR_RANGE_TRAP(sr_start, sr_end, trap_id) \
> { \
> .encoding = sr_start, \
> @@ -1289,15 +1294,19 @@ enum fg_filter_id {
>
> #define FGT(g, b, p) __FGT(g, b, p, __NO_FGF__)
>
> -#define SR_FGF(sr, g, b, p, f) \
> +/* Same warning applies: use carefully */
Nit: The other warning is a few hundred lines away. Consider identifying
it more precisely.
> +#define SR_FGF_RANGE(sr, e, g, b, p, f) \
> { \
> .encoding = sr, \
> - .end = sr, \
> + .end = e, \
> .tc = __FGT(g, b, p, f), \
> .line = __LINE__, \
> }
Thanks,
Ben
More information about the linux-arm-kernel
mailing list