Re: [PATCH] arm64/sme: Set new vector length before reallocating

From: Catalin Marinas
Date: Wed Jul 26 2023 - 13:37:39 EST


On Wed, Jul 26, 2023 at 01:12:26PM +0100, Mark Brown wrote:
> As part of fixing the allocation of the buffer for SVE state when changing
> SME vector length we introduced an immediate reallocation of the SVE state,
> this is also done when changing the SVE vector length for consistency.
> Unfortunately this reallocation is done prior to writing the new vector
> length to the task struct, meaning the allocation is done with the old
> vector length and can lead to memory corruption due to an undersized buffer
> being used.
>
> Move the update of the vector length before the allocation to ensure that
> the new vector length is taken into account.
>
> For some reason this isn't triggering any problems when running tests on
> the arm64 fixes branch (even after repeated tries) but is triggering
> issues very often after merge into mainline.
>
> Fixes: d4d5be94a878 ("arm64/fpsimd: Ensure SME storage is allocated after SVE VL changes")
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>

I'll add a cc stable here since the above commit was fixing code that
went in for 5.19.

--
Catalin