arm64: fpsimd: Avoid FPSIMD context leakage for the init task
authorDave Martin <Dave.Martin@arm.com>
Thu, 24 May 2018 14:54:30 +0000 (15:54 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 25 May 2018 11:27:55 +0000 (12:27 +0100)
commit66e48a0d29bdedc574c8fc0af7a5d112b594ced6
treeb4eb5ea01baf0423f8a1baffff1a1f5419511193
parentd179761519d9fe57ece975eaf8eec131547b9da3
arm64: fpsimd: Avoid FPSIMD context leakage for the init task

The init task is started with thread_flags equal to 0, which means
that TIF_FOREIGN_FPSTATE is initially clear.

It is theoretically possible (if unlikely) that the init task could
reach userspace without ever being scheduled out.  If this occurs,
data left in the FPSIMD registers by the kernel could be exposed.

This patch fixes this anomaly by ensuring that the init task's
initial TIF_FOREIGN_FPSTATE is set.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Fixes: 005f78cd8849 ("arm64: defer reloading a task's FPSIMD state to userland resume")
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/include/asm/thread_info.h