Message ID | 20241028-arm64-2024-dpisa-v1-8-a38d08b008a8@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | arm64: Support 2024 dpISA extensions | expand |
On Mon, 28 Oct 2024 20:24:17 +0000, Mark Brown <broonie@kernel.org> wrote: > > ID_AA64ISAR3_EL1 is currently marked as unallocated in KVM but does have a > number of bitfields defined in it. Expose FPRCVT and FAMINMAX, two simple > instruction only extensions to guests. > > Signed-off-by: Mark Brown <broonie@kernel.org> > --- > arch/arm64/kvm/sys_regs.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c > index dad88e31f9537fe02e28b117d6a740f15572e0ba..ab348c314d7963437e1876d441169f3ef4eff095 100644 > --- a/arch/arm64/kvm/sys_regs.c > +++ b/arch/arm64/kvm/sys_regs.c > @@ -2409,7 +2409,8 @@ static const struct sys_reg_desc sys_reg_descs[] = { > ID_WRITABLE(ID_AA64ISAR2_EL1, ~(ID_AA64ISAR2_EL1_RES0 | > ID_AA64ISAR2_EL1_APA3 | > ID_AA64ISAR2_EL1_GPA3)), > - ID_UNALLOCATED(6,3), > + ID_WRITABLE(ID_AA64ISAR3_EL1, (ID_AA64ISAR3_EL1_FPRCVT | > + ID_AA64ISAR3_EL1_FAMINMAX)), Please add the required sanitisation of the register so that we do not get any surprise exposure of unhandled features when someone changes ftr_id_aa64isar3[]. M.
On Tue, Oct 29, 2024 at 04:45:00PM +0000, Marc Zyngier wrote: > Mark Brown <broonie@kernel.org> wrote: > > + ID_WRITABLE(ID_AA64ISAR3_EL1, (ID_AA64ISAR3_EL1_FPRCVT | > > + ID_AA64ISAR3_EL1_FAMINMAX)), > Please add the required sanitisation of the register so that we do not > get any surprise exposure of unhandled features when someone changes > ftr_id_aa64isar3[]. Hrm, right - sorry I missed that. The other registers I was looking at don't do any filtering. This feels like something the helpers should do but that's simply not how things are structured right now.
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index dad88e31f9537fe02e28b117d6a740f15572e0ba..ab348c314d7963437e1876d441169f3ef4eff095 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -2409,7 +2409,8 @@ static const struct sys_reg_desc sys_reg_descs[] = { ID_WRITABLE(ID_AA64ISAR2_EL1, ~(ID_AA64ISAR2_EL1_RES0 | ID_AA64ISAR2_EL1_APA3 | ID_AA64ISAR2_EL1_GPA3)), - ID_UNALLOCATED(6,3), + ID_WRITABLE(ID_AA64ISAR3_EL1, (ID_AA64ISAR3_EL1_FPRCVT | + ID_AA64ISAR3_EL1_FAMINMAX)), ID_UNALLOCATED(6,4), ID_UNALLOCATED(6,5), ID_UNALLOCATED(6,6),
ID_AA64ISAR3_EL1 is currently marked as unallocated in KVM but does have a number of bitfields defined in it. Expose FPRCVT and FAMINMAX, two simple instruction only extensions to guests. Signed-off-by: Mark Brown <broonie@kernel.org> --- arch/arm64/kvm/sys_regs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)