On Mon, Aug 21, 2023 at 02:58:33PM +0100, Mark Brown wrote: > When we use NT_ARM_SSVE to either enable streaming mode or change the > vector length for a process we do not currently do anything to ensure that > there is storage allocated for the SME specific register state. If the > task had not previously used SME or we changed the vector length then > the task will not have had TIF_SME set or backing storage for ZA/ZT > allocated, resulting in inconsistent register sizes when saving state > and spurious traps which flush the newly set register state. > > We should set TIF_SME to disable traps and ensure that storage is > allocated for ZA and ZT if it is not already allocated. This requires > modifying sme_alloc() to make the flush of any existing register state > optional so we don't disturb existing state for ZA and ZT. > > Fixes: e12310a0d30f ("arm64/sme: Implement ptrace support for streaming mode SVE registers") > Reported-by: David Spickett <David.Spickett@xxxxxxx> > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> # 5.19.x > Link: https://lore.kernel.org/r/20230810-arm64-fix-ptrace-race-v1-1-a5361fad2bd6@xxxxxxxxxx > Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx> > (cherry picked from commit 5d0a8d2fba50e9c07cde4aad7fba28c008b07a5b) > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> Thanks, now queued up. greg k-h