[PATCH 3/3] KVM: arm64: Remove ISB after writing FPEXC32_EL2
Fuad Tabba
tabba at google.com
Wed Jan 7 02:49:55 PST 2026
On Tue, 6 Jan 2026 at 17:37, Mark Rutland <mark.rutland at arm.com> wrote:
>
> The value of FPEX32_EL2 has no effect on execution in AArch64 state, and
> consequently there's no need for an ISB after writing to it in the hyp
> code (which executes in AArch64 state). When performing an exception
> return to AArch32 state, the exception return will provide the necessary
> context synchronization event.
>
> Remove the redundant ISB.
>
> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
Tested-by: Fuad Tabba <tabba at google.com>
Reviewed-by: Fuad Tabba <tabba at google.com>
Thanks!
/fuad
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Fuad Tabba <tabba at google.com>
> Cc: Marc Zyngier <maz at kernel.org>
> Cc: Mark Brown <broonie at kernel.org>
> Cc: Oliver Upton <oliver.upton at linux.dev>
> Cc: Will Deacon <will at kernel.org>
> ---
> arch/arm64/kvm/hyp/include/hyp/switch.h | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h
> index 8dce3da85da35..91aa1862349cb 100644
> --- a/arch/arm64/kvm/hyp/include/hyp/switch.h
> +++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
> @@ -59,10 +59,8 @@ static inline void __activate_traps_fpsimd32(struct kvm_vcpu *vcpu)
> * If FP/ASIMD is not implemented, FPEXC is UNDEFINED and any access to
> * it will cause an exception.
> */
> - if (vcpu_el1_is_32bit(vcpu) && system_supports_fpsimd()) {
> + if (vcpu_el1_is_32bit(vcpu) && system_supports_fpsimd())
> write_sysreg(1 << 30, fpexc32_el2);
> - isb();
> - }
> }
>
> static inline void __activate_cptr_traps_nvhe(struct kvm_vcpu *vcpu)
> --
> 2.30.2
>
More information about the linux-arm-kernel
mailing list