[PATCH v2 19/26] KVM: arm64: nv: Add trap forwarding for HFGxTR_EL2
Oliver Upton
oliver.upton at linux.dev
Fri Jul 28 11:47:40 PDT 2023
Hey Marc,
On Fri, Jul 28, 2023 at 09:29:45AM +0100, Marc Zyngier wrote:
[...]
> @@ -943,6 +1025,27 @@ void __init populate_nv_trap_config(void)
> kvm_info("nv: %ld coarse grained trap handlers\n",
> ARRAY_SIZE(encoding_to_cgt));
It might make sense to skip insertion of the FGT trap controls if the
system doesn't have FGT in the first place.
> + for (int i = 0; i < ARRAY_SIZE(encoding_to_fgt); i++) {
> + const struct encoding_to_trap_config *fgt = &encoding_to_fgt[i];
> + union trap_config tc;
> +
> + tc = get_trap_config(fgt->encoding);
> +
> + WARN(tc.fgt,
> + "Duplicate FGT for sys_reg(%d, %d, %d, %d, %d)\n",
> + sys_reg_Op0(fgt->encoding),
> + sys_reg_Op1(fgt->encoding),
> + sys_reg_CRn(fgt->encoding),
> + sys_reg_CRm(fgt->encoding),
> + sys_reg_Op2(fgt->encoding));
Same comment here, we should just bail.
> + tc.val |= fgt->tc.val;
> + xa_store(&sr_forward_xa, fgt->encoding,
> + xa_mk_value(tc.val), GFP_KERNEL);
> + }
> +
> + kvm_info("nv: %ld fine grained trap handlers\n",
> + ARRAY_SIZE(encoding_to_fgt));
> }
--
Thanks,
Oliver
More information about the linux-arm-kernel
mailing list