]> www.infradead.org Git - users/jedix/linux-maple.git/commit
KVM: arm64: Remove ad-hoc CPTR manipulation from fpsimd_sve_sync()
authorMark Rutland <mark.rutland@arm.com>
Tue, 17 Jun 2025 13:37:15 +0000 (14:37 +0100)
committerMarc Zyngier <maz@kernel.org>
Thu, 19 Jun 2025 12:06:20 +0000 (13:06 +0100)
commit59e6e101a6fa542a365dd5858affd18ba3e84cb8
treec692eddf4d5eb1c7d7e755bf6f6bdd33730bf8f1
parente62dd507844fa47f0fdc29f3be5a90a83f297820
KVM: arm64: Remove ad-hoc CPTR manipulation from fpsimd_sve_sync()

There's no need for fpsimd_sve_sync() to write to CPTR/CPACR. All
relevant traps are always disabled earlier within __kvm_vcpu_run(), when
__deactivate_cptr_traps() configures CPTR/CPACR.

With irrelevant details elided, the flow is:

handle___kvm_vcpu_run(...)
{
flush_hyp_vcpu(...) {
fpsimd_sve_flush(...);
}

__kvm_vcpu_run(...) {
__activate_traps(...) {
__activate_cptr_traps(...);
}

do {
__guest_enter(...);
} while (...);

__deactivate_traps(....) {
__deactivate_cptr_traps(...);
}
}

sync_hyp_vcpu(...) {
fpsimd_sve_sync(...);
}
}

Remove the unnecessary write to CPTR/CPACR. An ISB is still necessary,
so a comment is added to describe this requirement.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20250617133718.4014181-5-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/hyp/nvhe/hyp-main.c