[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aS1dlsDcV9cpD76z@arm.com>
Date: Mon, 1 Dec 2025 09:19:18 +0000
From: Yury Khrustalev <yury.khrustalev@....com>
To: Mark Brown <broonie@...nel.org>
CC: Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>,
Thiago Jung Bauermann <thiago.bauermann@...aro.org>,
<linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] arm64/gcs: Flush the GCS locking state on exec
On Sat, Nov 29, 2025 at 12:48:45AM +0000, Mark Brown wrote:
> When we exec a new task we forget to flush the set of locked GCS mode bits.
> Since we do flush the rest of the state this means that if GCS is locked
> the new task will be unable to enable GCS, it will be locked as being
> disabled. Add the expected flush.
>
> Fixes: fc84bc5378a8 ("arm64/gcs: Context switch GCS state for EL0")
> Reported-by: Yury Khrustalev <Yury.Khrustalev@....com>
> Signed-off-by: Mark Brown <broonie@...nel.org>
Thanks! I've tested this patch and it works as expected.
Tested-by: Yury Khrustalev <yury.khrustalev@....com>
> ---
> arch/arm64/kernel/process.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
> index fba7ca102a8c..489554931231 100644
> --- a/arch/arm64/kernel/process.c
> +++ b/arch/arm64/kernel/process.c
> @@ -292,6 +292,7 @@ static void flush_gcs(void)
> current->thread.gcs_base = 0;
> current->thread.gcs_size = 0;
> current->thread.gcs_el0_mode = 0;
> + current->thread.gcs_el0_locked = 0;
> write_sysreg_s(GCSCRE0_EL1_nTR, SYS_GCSCRE0_EL1);
> write_sysreg_s(0, SYS_GCSPR_EL0);
> }
>
> ---
> base-commit: ac3fd01e4c1efce8f2c054cdeb2ddd2fc0fb150d
> change-id: 20251128-arm64-gcs-flush-lock-163eab9c22f4
>
> Best regards,
> --
> Mark Brown <broonie@...nel.org>
>
Powered by blists - more mailing lists