From 284f6283cf476bf7ebdac0b1fa49cbeac73488a2 Mon Sep 17 00:00:00 2001 From: Suresh Siddha Date: Thu, 9 Apr 2009 15:24:34 -0700 Subject: [PATCH] --- yaml --- r: 144183 b: refs/heads/master c: 06c38d5e36b12d040839ff224e805146c0368556 h: refs/heads/master i: 144181: 76bc3bb8123855422ae11ba25eb1a864a6683645 144179: 180fb277a8dcb9be919ebfe9559ae17ed035bc36 144175: 0dc5e58c60a6cb98f2b5679fc36d32e19879c240 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/xsave.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 514e411fb9dd..5a04ef537f98 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fc61e6636d13eb3a23eb29b4327eeee9de0ef3bc +refs/heads/master: 06c38d5e36b12d040839ff224e805146c0368556 diff --git a/trunk/arch/x86/kernel/xsave.c b/trunk/arch/x86/kernel/xsave.c index 0a5b04aa98f1..c5ee17e8c6d9 100644 --- a/trunk/arch/x86/kernel/xsave.c +++ b/trunk/arch/x86/kernel/xsave.c @@ -89,7 +89,7 @@ int save_i387_xstate(void __user *buf) if (!used_math()) return 0; - clear_used_math(); /* trigger finit */ + if (task_thread_info(tsk)->status & TS_USEDFPU) { /* * Start with clearing the user buffer. This will present a @@ -114,6 +114,8 @@ int save_i387_xstate(void __user *buf) return -1; } + clear_used_math(); /* trigger finit */ + if (task_thread_info(tsk)->status & TS_XSAVE) { struct _fpstate __user *fx = buf; struct _xstate __user *x = buf;