Message ID | 20230607-arm64-flush-svcr-v2-1-827306001841@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64/fpsimd: Exit streaming mode when flushing tasks | expand |
On Fri, 09 Jun 2023 23:43:41 +0100, Mark Brown wrote: > Ensure there is no path where we might attempt to save SME state after we > flush a task by updating the SVCR register state as well as updating our > in memory state. I haven't seen a specific case where this is happening or > seen a path where it might happen but for the cost of a single low overhead > instruction it seems sensible to close the potential gap. > > > [...] Applied to arm64 (for-next/misc), thanks! [1/1] arm64/fpsimd: Exit streaming mode when flushing tasks https://git.kernel.org/arm64/c/af3215fd0230
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index 2fbafa5cc7ac..7a1aeb95d7c3 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -1649,6 +1649,7 @@ void fpsimd_flush_thread(void) fpsimd_flush_thread_vl(ARM64_VEC_SME); current->thread.svcr = 0; + sme_smstop(); } current->thread.fp_type = FP_STATE_FPSIMD;
Ensure there is no path where we might attempt to save SME state after we flush a task by updating the SVCR register state as well as updating our in memory state. I haven't seen a specific case where this is happening or seen a path where it might happen but for the cost of a single low overhead instruction it seems sensible to close the potential gap. Signed-off-by: Mark Brown <broonie@kernel.org> --- Changes in v2: - Do a full SMSTOP to cover ZA as well. - Link to v1: https://lore.kernel.org/r/20230607-arm64-flush-svcr-v1-1-7821a6199e0a@kernel.org --- arch/arm64/kernel/fpsimd.c | 1 + 1 file changed, 1 insertion(+) --- base-commit: 44c026a73be8038f03dbdeef028b642880cf1511 change-id: 20230607-arm64-flush-svcr-47cc76a8cbbc Best regards,