From: Chris Wright <chrisw@sous-sol.org>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
"Theodore Ts'o" <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Dave Jones <davej@redhat.com>,
Chuck Wolber <chuckw@quantumlinux.com>,
Chris Wedgwood <reviews@ml.cw.f00f.org>,
Michael Krufky <mkrufky@linuxtv.org>,
torvalds@osdl.org, akpm@osdl.org, alan@lxorguk.ukuu.org.uk,
Andi Kleen <ak@suse.de>,
jbeulich@novell.com
Subject: [patch 16/30] x86_64: Fix FPU corruption
Date: Wed, 15 Nov 2006 18:43:48 -0800 [thread overview]
Message-ID: <20061116024659.390275000@sous-sol.org> (raw)
In-Reply-To: 20061116024332.124753000@sous-sol.org
[-- Attachment #1: x86_64-fix-fpu-corruption.patch --]
[-- Type: text/plain, Size: 1376 bytes --]
-stable review patch. If anyone has any objections, please let us know.
------------------
From: Andi Kleen <ak@suse.de>
This reverts an earlier patch that was found to cause FPU
state corruption. I think the corruption happens because
unlazy_fpu() can cause FPU exceptions and when it happens
after the current switch some processing would affect
the state in the wrong process.
Thanks to Douglas Crosher and Tom Hughes for testing.
Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
arch/x86_64/kernel/process.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
--- linux-2.6.18.2.orig/arch/x86_64/kernel/process.c
+++ linux-2.6.18.2/arch/x86_64/kernel/process.c
@@ -571,6 +571,9 @@ __switch_to(struct task_struct *prev_p,
prev->gsindex = gsindex;
}
+ /* Must be after DS reload */
+ unlazy_fpu(prev_p);
+
/*
* Switch the PDA and FPU contexts.
*/
@@ -578,10 +581,6 @@ __switch_to(struct task_struct *prev_p,
write_pda(oldrsp, next->userrsp);
write_pda(pcurrent, next_p);
- /* This must be here to ensure both math_state_restore() and
- kernel_fpu_begin() work consistently.
- And the AMD workaround requires it to be after DS reload. */
- unlazy_fpu(prev_p);
write_pda(kernelstack,
task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET);
--
next prev parent reply other threads:[~2006-11-16 2:46 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-16 2:43 [patch 00/30] -stable review Chris Wright
2006-11-16 2:43 ` [patch 01/30] S390: user readable uninitialised kernel memory, take 2 Chris Wright
2006-11-16 2:43 ` [patch 02/30] POWERPC: Make alignment exception always check exception table Chris Wright
2006-11-16 2:43 ` [patch 03/30] SPARC64: Fix futex_atomic_cmpxchg_inatomic implementation Chris Wright
2006-11-16 2:43 ` [patch 04/30] Fix sys_move_pages when a NULL node list is passed Chris Wright
2006-11-16 2:43 ` [patch 05/30] splice: fix problem introduced with inode diet Chris Wright
2006-11-17 2:52 ` Dave Jones
2006-11-17 6:16 ` [stable] " Chris Wright
2006-11-16 2:43 ` [patch 06/30] SPARC: Fix missed bump of NR_SYSCALLS Chris Wright
2006-11-16 2:43 ` [patch 07/30] bcm43xx: Drain TX status before starting IRQs Chris Wright
2006-11-16 16:09 ` Larry Finger
2006-11-16 18:38 ` Chris Wright
2006-11-18 19:06 ` Larry Finger
2006-11-19 4:11 ` Chris Wright
2006-11-19 23:51 ` Dan Williams
2006-11-16 2:43 ` [patch 08/30] fix UFS superblock alignment issues Chris Wright
2006-11-16 2:43 ` [patch 09/30] ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS Chris Wright
2006-11-16 2:43 ` [patch 10/30] init_reap_node() initialization fix Chris Wright
2006-11-16 2:43 ` [patch 11/30] USB: failure in usblps error path Chris Wright
2006-11-16 2:43 ` [patch 12/30] usbtouchscreen: use endpoint address from endpoint descriptor Chris Wright
2006-11-16 2:43 ` [patch 13/30] e1000: Fix regression: garbled stats and irq allocation during swsusp Chris Wright
2006-11-16 2:43 ` [patch 14/30] NET: __alloc_pages() failures reported due to fragmentation Chris Wright
2006-11-16 2:43 ` [patch 15/30] Input: psmouse - fix attribute access on 64-bit systems Chris Wright
2006-11-16 2:43 ` Chris Wright [this message]
2006-11-16 2:43 ` [patch 17/30] correct keymapping on Powerbook built-in USB ISO keyboards Chris Wright
2006-11-16 2:43 ` [patch 18/30] TCP: Dont use highmem in tcp hash size calculation Chris Wright
2006-11-16 2:43 ` [patch 19/30] NET: Set truesize in pskb_copy Chris Wright
2006-11-16 2:43 ` [patch 20/30] fix via586 irq routing for pirq 5 Chris Wright
2006-11-16 2:43 ` [patch 21/30] security/seclvl.c: fix time wrap (CVE-2005-4352) Chris Wright
2006-11-16 2:43 ` [patch 22/30] CPUFREQ: Make acpi-cpufreq unsticky again Chris Wright
2006-11-16 2:43 ` [patch 23/30] Patch for nvidia divide by zero error for 7600 pci-express card Chris Wright
2006-11-16 2:43 ` [patch 24/30] pci: dont try to remove sysfs files before they are setup Chris Wright
2006-11-16 2:43 ` [patch 25/30] block: Fix bad data direction in SG_IO Chris Wright
2006-11-16 2:43 ` [patch 26/30] Char: isicom, fix close bug Chris Wright
2006-11-16 2:43 ` [patch 27/30] cpqarray: fix iostat Chris Wright
2006-11-16 2:44 ` [patch 28/30] cciss: " Chris Wright
2006-11-16 2:44 ` [patch 29/30] CIFS: report rename failure when target file is locked by Windows Chris Wright
2006-11-16 2:44 ` [patch 30/30] CIFS: New POSIX locking code not setting rc properly to zero on successful Chris Wright
2006-11-16 21:57 ` [patch 00/30] -stable review Dave Jones
2006-11-16 22:22 ` Chris Wright
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=20061116024659.390275000@sous-sol.org \
--to=chrisw@sous-sol.org \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=chuckw@quantumlinux.com \
--cc=davej@redhat.com \
--cc=jbeulich@novell.com \
--cc=jmforbes@linuxtx.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkrufky@linuxtv.org \
--cc=rdunlap@xenotime.net \
--cc=reviews@ml.cw.f00f.org \
--cc=stable@kernel.org \
--cc=torvalds@osdl.org \
--cc=tytso@mit.edu \
--cc=zwane@arm.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).