aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/signal32.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2014-06-26 10:50:14 +0100
committerMark Brown <broonie@linaro.org>2014-06-26 10:50:14 +0100
commitafe6ba0684ab75f5ee0306689e58b8b488319451 (patch)
tree20e659b8c8319cfe8c46b0ef93037e1dacbd5f8f /arch/arm64/kernel/signal32.c
parent713c7153774c6b8b4cdc5bb13a0616e1f8ce7d0e (diff)
parent9580f7022362bf717457b6b73de1e0ed0fede211 (diff)
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-androidlsk-android-14.06
Diffstat (limited to 'arch/arm64/kernel/signal32.c')
-rw-r--r--arch/arm64/kernel/signal32.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c
index 02de43260332..e51bbe79f5b5 100644
--- a/arch/arm64/kernel/signal32.c
+++ b/arch/arm64/kernel/signal32.c
@@ -219,7 +219,7 @@ static int compat_preserve_vfp_context(struct compat_vfp_sigframe __user *frame)
* Note that this also saves V16-31, which aren't visible
* in AArch32.
*/
- fpsimd_preserve_current_state();
+ fpsimd_save_state(fpsimd);
/* Place structure header on the stack */
__put_user_error(magic, &frame->magic, err);
@@ -282,8 +282,11 @@ static int compat_restore_vfp_context(struct compat_vfp_sigframe __user *frame)
* We don't need to touch the exception register, so
* reload the hardware state.
*/
- if (!err)
- fpsimd_update_current_state(&fpsimd);
+ if (!err) {
+ preempt_disable();
+ fpsimd_load_state(&fpsimd);
+ preempt_enable();
+ }
return err ? -EFAULT : 0;
}