On Mon, Aug 07, 2023 at 08:56:33PM +0100, Mark Brown wrote: > Systems which implement SME without also implementing SVE are > architecturally valid but were not initially supported by the kernel, > unfortunately we missed one issue in the ptrace code. > > The SVE register setting code is shared between SVE and streaming mode > SVE. When we set full SVE register state we currently enable TIF_SVE > unconditionally, in the case where streaming SVE is being configured on a > system that supports vanilla SVE this is not an issue since we always > initialise enough state for both vector lengths but on a system which only > support SME it will result in us attempting to restore the SVE vector > length after having set streaming SVE registers. > > Fix this by making the enabling of SVE conditional on setting SVE vector > state. If we set streaming SVE state and SVE was not already enabled this > will result in a SVE access trap on next use of normal SVE, this will cause > us to flush our register state but this is fine since the only way to > trigger a SVE access trap would be to exit streaming mode which will cause > the in register state to be flushed anyway. > > Fixes: e12310a0d30f ("arm64/sme: Implement ptrace support for streaming mode SVE registers") > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Link: https://lore.kernel.org/r/20230803-arm64-fix-ptrace-ssve-no-sve-v1-1-49df214bfb3e@xxxxxxxxxx > Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx> > (cherry picked from commit 045aecdfcb2e060db142d83a0f4082380c465d2c) > [Fix up backport -- broonie] > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> Now queued up, thanks. greg k-h