Skip to content

Commit 98a97bf

Browse files
brooniectmarinas
authored andcommitted
arm64/gcs: Flush the GCS locking state on exec
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: fc84bc5 ("arm64/gcs: Context switch GCS state for EL0") Cc: <stable@vger.kernel.org> # 6.13.x Reported-by: Yury Khrustalev <Yury.Khrustalev@arm.com> Signed-off-by: Mark Brown <broonie@kernel.org> Tested-by: Yury Khrustalev <yury.khrustalev@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
1 parent 63de2b3 commit 98a97bf

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

arch/arm64/kernel/process.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ static void flush_gcs(void)
292292
current->thread.gcs_base = 0;
293293
current->thread.gcs_size = 0;
294294
current->thread.gcs_el0_mode = 0;
295+
current->thread.gcs_el0_locked = 0;
295296
write_sysreg_s(GCSCRE0_EL1_nTR, SYS_GCSCRE0_EL1);
296297
write_sysreg_s(0, SYS_GCSPR_EL0);
297298
}

0 commit comments

Comments
 (0)