All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Suresh Siddha <suresh.b.siddha@intel.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
	suresh.b.siddha@intel.com, tglx@linutronix.de,
	hpa@linux.intel.com
Subject: [tip:x86/fpu] x86, fpu: drop_fpu() before restoring new state from sigframe
Date: Fri, 24 Aug 2012 15:13:28 -0700	[thread overview]
Message-ID: <tip-739390035c5fba2132fa424309786ff7bdd2cc1e@git.kernel.org> (raw)
In-Reply-To: <1345842782-24175-2-git-send-email-suresh.b.siddha@intel.com>

Commit-ID:  739390035c5fba2132fa424309786ff7bdd2cc1e
Gitweb:     http://git.kernel.org/tip/739390035c5fba2132fa424309786ff7bdd2cc1e
Author:     Suresh Siddha <suresh.b.siddha@intel.com>
AuthorDate: Fri, 24 Aug 2012 14:12:57 -0700
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Fri, 24 Aug 2012 14:26:47 -0700

x86, fpu: drop_fpu() before restoring new state from sigframe

No need to save the state with unlazy_fpu(), that is about to get overwritten
by the state from the signal frame. Instead use drop_fpu() and continue
to restore the new state.

Also fold the stop_fpu_preload() into drop_fpu().

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Link: http://lkml.kernel.org/r/1345842782-24175-2-git-send-email-suresh.b.siddha@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/include/asm/fpu-internal.h |    7 +------
 arch/x86/kernel/xsave.c             |    8 +++-----
 2 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
index ba83a08..fe95ad0 100644
--- a/arch/x86/include/asm/fpu-internal.h
+++ b/arch/x86/include/asm/fpu-internal.h
@@ -448,17 +448,12 @@ static inline void save_init_fpu(struct task_struct *tsk)
 	preempt_enable();
 }
 
-static inline void stop_fpu_preload(struct task_struct *tsk)
-{
-	tsk->fpu_counter = 0;
-}
-
 static inline void drop_fpu(struct task_struct *tsk)
 {
 	/*
 	 * Forget coprocessor state..
 	 */
-	stop_fpu_preload(tsk);
+	tsk->fpu_counter = 0;
 	preempt_disable();
 	__drop_fpu(tsk);
 	preempt_enable();
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
index a23d100..6cfc7d9 100644
--- a/arch/x86/kernel/xsave.c
+++ b/arch/x86/kernel/xsave.c
@@ -381,16 +381,14 @@ int __restore_xstate_sig(void __user *buf, void __user *buf_fx, int size)
 		struct xsave_struct *xsave = &tsk->thread.fpu.state->xsave;
 		struct user_i387_ia32_struct env;
 
-		stop_fpu_preload(tsk);
-		unlazy_fpu(tsk);
+		drop_fpu(tsk);
 
 		if (__copy_from_user(xsave, buf_fx, state_size) ||
-		    __copy_from_user(&env, buf, sizeof(env))) {
-			drop_fpu(tsk);
+		    __copy_from_user(&env, buf, sizeof(env)))
 			return -1;
-		}
 
 		sanitize_restored_xstate(tsk, &env, xstate_bv, fx_only);
+		set_used_math();
 	} else {
 		/*
 		 * For 64-bit frames and 32-bit fsave frames, restore the user

  reply	other threads:[~2012-08-24 22:13 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-24 21:12 [PATCH 0/6] x86, fpu: cleanups, introduce non-lazy FPU restore for xsave Suresh Siddha
2012-08-24 21:12 ` [PATCH 1/6] x86, fpu: drop_fpu() before restoring new state from sigframe Suresh Siddha
2012-08-24 22:13   ` tip-bot for Suresh Siddha [this message]
2012-09-19  0:01   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-08-24 21:12 ` [PATCH 2/6] x86, fpu: remove unnecessary user_fpu_end() in save_xstate_sig() Suresh Siddha
2012-08-24 22:14   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-08-26 11:30   ` [PATCH 2/6] " Borislav Petkov
2012-09-19  0:02   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-08-24 21:12 ` [PATCH 3/6] x86, kvm: use kernel_fpu_begin/end() in kvm_load/put_guest_fpu() Suresh Siddha
2012-08-24 22:15   ` [tip:x86/fpu] x86, kvm: use kernel_fpu_begin/end() in kvm_load/ put_guest_fpu() tip-bot for Suresh Siddha
2012-09-19  0:03   ` tip-bot for Suresh Siddha
2012-09-19 10:13   ` [PATCH 3/6] x86, kvm: use kernel_fpu_begin/end() in kvm_load/put_guest_fpu() Avi Kivity
2012-09-19 17:18     ` Suresh Siddha
2012-09-19 17:22       ` Avi Kivity
2012-09-19 17:25         ` Suresh Siddha
2012-09-20  9:31           ` Avi Kivity
2012-09-19 17:26         ` H. Peter Anvin
2012-09-20  9:36           ` Avi Kivity
2012-09-20  0:10     ` Suresh Siddha
2012-09-20  9:50       ` Avi Kivity
2012-09-20 18:01         ` Suresh Siddha
2012-09-22  0:19           ` [tip:x86/fpu] x86, kvm: fix kvm's usage of kernel_fpu_begin/end() tip-bot for Suresh Siddha
2012-08-24 21:13 ` [PATCH 4/6] x86, fpu: always use kernel_fpu_begin/end() for in-kernel FPU usage Suresh Siddha
2012-08-24 22:16   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-09-19  0:04   ` tip-bot for Suresh Siddha
2012-08-24 21:13 ` [PATCH 5/6] lguest, x86: handle guest TS bit for lazy/non-lazy fpu host models Suresh Siddha
2012-08-24 22:16   ` [tip:x86/fpu] lguest, x86: handle guest TS bit for lazy/ non-lazy " tip-bot for Suresh Siddha
2012-09-19  0:05   ` tip-bot for Suresh Siddha
2012-08-24 21:13 ` [PATCH 6/6] x86, fpu: use non-lazy fpu restore for processors supporting xsave Suresh Siddha
2012-08-24 22:17   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-08-24 21:33 ` [PATCH 0/6] x86, fpu: cleanups, introduce non-lazy FPU restore for xsave H. Peter Anvin
2012-08-25 18:34   ` Linus Torvalds
  -- strict thread matches above, loose matches on Subject: below --
2012-09-10 18:11 [PATCH v2 0/5] eagerfpu patches for tip/x86/fpu Suresh Siddha
2012-09-10 18:11 ` [PATCH v2 1/5] x86, fpu: decouple non-lazy/eager fpu restore from xsave Suresh Siddha
2012-09-17 19:11   ` Pavel Machek
2012-09-19  0:07   ` [tip:x86/fpu] x86, fpu: decouple non-lazy/ eager " tip-bot for Suresh Siddha
2012-09-10 18:11 ` [PATCH v2 2/5] x86, fpu: enable eagerfpu by default for xsaveopt Suresh Siddha
2012-09-19  0:08   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-09-10 18:11 ` [PATCH v2 3/5] x86, fpu: move check_fpu() after alternative_instructions() Suresh Siddha
2012-09-19  0:06   ` [tip:x86/fpu] x86, fpu: use non-lazy fpu restore for processors supporting xsave tip-bot for Suresh Siddha
2012-09-10 18:11 ` [PATCH v2 4/5] x86, fpu: make eagerfpu= boot param tri-state Suresh Siddha
2012-09-19  0:09   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-09-10 18:11 ` [PATCH v2 5/5] x86, fpu: remove cpu_has_xmm check in the fx_finit() Suresh Siddha
2012-09-19  0:10   ` [tip:x86/fpu] " tip-bot for Suresh Siddha
2012-09-10 18:16 ` [PATCH v2 0/5] eagerfpu patches for tip/x86/fpu Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-739390035c5fba2132fa424309786ff7bdd2cc1e@git.kernel.org \
    --to=suresh.b.siddha@intel.com \
    --cc=hpa@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.