arm64: ptrace: Flush FPSIMD regs back to thread_struct before reading
authorDave Martin <Dave.Martin@arm.com>
Wed, 21 Jun 2017 15:00:43 +0000 (16:00 +0100)
committerWill Deacon <will.deacon@arm.com>
Thu, 22 Jun 2017 14:58:19 +0000 (15:58 +0100)
commite1d5a8fb73e6c65280c21ec188180345649ee650
tree96a8624bb07d0971286d9972c7b3c41f9c98c871
parentaf66b2d88a76574d55e81d712292abd34beb6178
arm64: ptrace: Flush FPSIMD regs back to thread_struct before reading

When reading the FPSIMD state of current (which occurs when dumping
core), it is possible that userspace has modified the FPSIMD
registers since the time the task was last scheduled out.  Such
changes are not guaranteed to be reflected immedately in
thread_struct.

As a result, a coredump can contain stale values for these
registers.  Reading the registers of a stopped task via ptrace is
unaffected.

This patch explicitly flushes the CPU state back to thread_struct
before dumping when operating on current, thus ensuring that
coredump contents are up to date.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/ptrace.c