summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2012-01-30 20:23:29 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-02-02 17:37:42 +0000
commit8130b9d7b9d858aa04ce67805e8951e3cb6e9b2f (patch)
tree0b66f2eb287b5412ef7c3d8034a64d9182fb7999
parent247f4993a5974e6759606c4d380748eecfd273ff (diff)
downloadlinux-3.10-8130b9d7b9d858aa04ce67805e8951e3cb6e9b2f.tar.gz
linux-3.10-8130b9d7b9d858aa04ce67805e8951e3cb6e9b2f.tar.bz2
linux-3.10-8130b9d7b9d858aa04ce67805e8951e3cb6e9b2f.zip
ARM: 7308/1: vfp: flush thread hwstate before copying ptrace registers
If we are context switched whilst copying into a thread's vfp_hard_struct then the partial copy may be corrupted by the VFP context switching code (see "ARM: vfp: flush thread hwstate before restoring context from sigframe"). This patch updates the ptrace VFP set code so that the thread state is flushed before the copy, therefore disabling VFP and preventing corruption from occurring. Cc: stable <stable@vger.kernel.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/kernel/ptrace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
index d001be4e0ce..e33870ff0ac 100644
--- a/arch/arm/kernel/ptrace.c
+++ b/arch/arm/kernel/ptrace.c
@@ -726,8 +726,8 @@ static int vfp_set(struct task_struct *target,
if (ret)
return ret;
- thread->vfpstate.hard = new_vfp;
vfp_flush_hwstate(thread);
+ thread->vfpstate.hard = new_vfp;
return 0;
}