]> asedeno.scripts.mit.edu Git - linux.git/commit
arm64: don't zero DIT on signal return
authorMark Rutland <mark.rutland@arm.com>
Thu, 5 Jul 2018 14:16:49 +0000 (15:16 +0100)
committerWill Deacon <will.deacon@arm.com>
Thu, 5 Jul 2018 16:24:13 +0000 (17:24 +0100)
commit1265132127b63502d34e0f58c8bdef3a4dc927c2
tree93a9a6fa40fead74434716329786a15d721cd7dc
parent25086263425641c74123f9387426c23072b299ea
arm64: don't zero DIT on signal return

Currently valid_user_regs() treats SPSR_ELx.DIT as a RES0 bit, causing
it to be zeroed upon exception return, rather than preserved. Thus, code
relying on DIT will not function as expected, and may expose an
unexpected timing sidechannel.

Let's remove DIT from the set of RES0 bits, such that it is preserved.
At the same time, the related comment is updated to better describe the
situation, and to take into account the most recent documentation of
SPSR_ELx, in ARM DDI 0487C.a.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Fixes: 7206dc93a58fb764 ("arm64: Expose Arm v8.4 features")
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/ptrace.c