All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: "Udo A. Steinberg" <sorisor@Hell.WH8.TU-Dresden.De>
Cc: Andi Kleen <ak@suse.de>, Linus Torvalds <torvalds@transmeta.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: 2.4.1-pre1 breaks XFree 4.0.2 and "w"
Date: Thu, 11 Jan 2001 19:53:16 +0100	[thread overview]
Message-ID: <20010111195316.A892@athlon.random> (raw)
In-Reply-To: <3A5C6417.6670FCB7@Hell.WH8.TU-Dresden.De> <20010110181516.X10035@nightmaster.csn.tu-chemnitz.de> <3A5C96BB.96B19DB@Hell.WH8.TU-Dresden.De> <200101110841.AAA01652@penguin.transmeta.com> <3A5D8583.F5F30BD2@Hell.WH8.TU-Dresden.De> <20010111111145.A19584@gruyere.muc.suse.de> <3A5D8B79.AD1E161D@Hell.WH8.TU-Dresden.De> <20010111183605.A828@athlon.random> <20010111184645.B828@athlon.random> <20010111184821.E828@athlon.random>
In-Reply-To: <20010111184821.E828@athlon.random>; from andrea@suse.de on Thu, Jan 11, 2001 at 06:48:21PM +0100

On Thu, Jan 11, 2001 at 06:48:21PM +0100, Andrea Arcangeli wrote:
> Ah no, I even better, just pass `nofxsr` to the 2.4.1-pre2 kernel. (no
> need to recompile)

Ok here the right fix against 2.4.1-pre2 so now you can use 3dnow and fxsr
at the same time (and nofxsr can still dynamically disable fxsr and xmm):

diff -urN -X /home/andrea/bin/dontdiff 2.4.1-pre2/arch/i386/kernel/i386_ksyms.c 2.4.1-pre2-fxsr/arch/i386/kernel/i386_ksyms.c
--- 2.4.1-pre2/arch/i386/kernel/i386_ksyms.c	Thu Dec 14 22:33:59 2000
+++ 2.4.1-pre2-fxsr/arch/i386/kernel/i386_ksyms.c	Thu Jan 11 18:07:53 2001
@@ -116,6 +116,7 @@
 EXPORT_SYMBOL(mmx_clear_page);
 EXPORT_SYMBOL(mmx_copy_page);
 #endif
+EXPORT_SYMBOL(mmu_cr4_features);
 
 #ifdef CONFIG_SMP
 EXPORT_SYMBOL(cpu_data);
diff -urN -X /home/andrea/bin/dontdiff 2.4.1-pre2/arch/i386/kernel/i387.c 2.4.1-pre2-fxsr/arch/i386/kernel/i387.c
--- 2.4.1-pre2/arch/i386/kernel/i387.c	Thu Jan 11 17:52:05 2001
+++ 2.4.1-pre2-fxsr/arch/i386/kernel/i387.c	Thu Jan 11 18:55:52 2001
@@ -43,7 +43,7 @@
  * FPU lazy state save handling.
  */
 
-void save_init_fpu( struct task_struct *tsk )
+inline void __save_init_fpu( struct task_struct *tsk )
 {
 	if ( HAVE_FXSR ) {
 		asm volatile( "fxsave %0 ; fnclex"
@@ -53,6 +53,11 @@
 			      : "=m" (tsk->thread.i387.fsave) );
 	}
 	tsk->flags &= ~PF_USEDFPU;
+}
+
+void save_init_fpu( struct task_struct *tsk )
+{
+	__save_init_fpu(tsk);
 	stts();
 }
 
diff -urN -X /home/andrea/bin/dontdiff 2.4.1-pre2/arch/i386/lib/mmx.c 2.4.1-pre2-fxsr/arch/i386/lib/mmx.c
--- 2.4.1-pre2/arch/i386/lib/mmx.c	Tue Nov 28 18:39:59 2000
+++ 2.4.1-pre2-fxsr/arch/i386/lib/mmx.c	Thu Jan 11 19:23:53 2001
@@ -29,10 +29,7 @@
 	if (!(current->flags & PF_USEDFPU))
 		clts();
 	else
-	{
-		__asm__ __volatile__ ( " fnsave %0; fwait\n"::"m"(current->thread.i387));
-		current->flags &= ~PF_USEDFPU;
-	}
+		__save_init_fpu(current);
 
 	__asm__ __volatile__ (
 		"1: prefetch (%0)\n"		/* This set is 28 bytes */
@@ -98,10 +95,7 @@
 	if (!(current->flags & PF_USEDFPU))
 		clts();
 	else
-	{
-		__asm__ __volatile__ ( " fnsave %0; fwait\n"::"m"(current->thread.i387));
-		current->flags &= ~PF_USEDFPU;
-	}
+		__save_init_fpu(current);
 	
 	__asm__ __volatile__ (
 		"  pxor %%mm0, %%mm0\n" : :
@@ -136,10 +130,7 @@
 	if (!(current->flags & PF_USEDFPU))
 		clts();
 	else
-	{
-		__asm__ __volatile__ ( " fnsave %0; fwait\n"::"m"(current->thread.i387));
-		current->flags &= ~PF_USEDFPU;
-	}
+		__save_init_fpu(current);
 
 	/* maybe the prefetch stuff can go before the expensive fnsave...
 	 * but that is for later. -AV
diff -urN -X /home/andrea/bin/dontdiff 2.4.1-pre2/include/asm-i386/i387.h 2.4.1-pre2-fxsr/include/asm-i386/i387.h
--- 2.4.1-pre2/include/asm-i386/i387.h	Thu Jan 11 17:59:31 2001
+++ 2.4.1-pre2-fxsr/include/asm-i386/i387.h	Thu Jan 11 18:56:32 2001
@@ -20,6 +20,7 @@
 /*
  * FPU lazy state save handling...
  */
+extern void __save_init_fpu( struct task_struct *tsk );
 extern void save_init_fpu( struct task_struct *tsk );
 extern void restore_fpu( struct task_struct *tsk );
 

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2001-01-11 18:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-10 13:31 2.4.1-pre1 breaks XFree 4.0.2 and "w" Udo A. Steinberg
2001-01-10 17:15 ` Ingo Oeser
2001-01-10 17:07   ` Udo A. Steinberg
2001-01-10 20:00     ` Jonathan Hudson
2001-01-11  8:41     ` Linus Torvalds
2001-01-11 12:54       ` Alan Cox
     [not found]     ` <200101110841.AAA01652@penguin.transmeta.com>
2001-01-11 10:05       ` Udo A. Steinberg
2001-01-11 10:11         ` Andi Kleen
2001-01-11 10:31           ` Udo A. Steinberg
2001-01-11 17:36             ` Andrea Arcangeli
2001-01-11 17:46               ` Andrea Arcangeli
2001-01-11 17:48                 ` Andrea Arcangeli
2001-01-11 18:53                   ` Andrea Arcangeli [this message]
2001-01-12  2:08                 ` Linus Torvalds
2001-01-12  3:45                   ` Andrea Arcangeli
2001-01-12  4:26                     ` Linus Torvalds
2001-01-12 16:02                       ` Andrea Arcangeli
2001-01-12 16:42                         ` Richard A Nelson
2001-01-12 17:05                           ` Andrea Arcangeli
2001-01-12 17:35                             ` Linus Torvalds
2001-01-12 17:54                               ` Alan Cox
2001-01-12 18:35                                 ` Linus Torvalds
2001-01-12 18:57                                   ` Andrea Arcangeli
2001-01-12 19:19                                     ` Laramie Leavitt
2001-01-12 20:39                                     ` Mark Hahn
2001-01-12 18:24                               ` Andrea Arcangeli
2001-01-15 20:33                       ` [PATCH] i386/setup.c cpuinfo notsc Hugh Dickins
2001-01-15 20:48                         ` H. Peter Anvin
2001-01-15 21:38                           ` Maciej W. Rozycki
2001-01-15 21:41                             ` H. Peter Anvin
2001-01-15 21:51                               ` Maciej W. Rozycki
2001-01-16  3:47                                 ` H. Peter Anvin
2001-01-15 21:34                         ` Maciej W. Rozycki
2001-01-18 16:39                         ` [PATCH] udf writepage UnlockPage Hugh Dickins
2001-01-28 14:43                           ` Hugh Dickins
2001-01-12  4:28                   ` 2.4.1-pre1 breaks XFree 4.0.2 and "w" TimO
2001-01-12  6:06                   ` Udo A. Steinberg
2001-01-12  9:47                   ` Harold Oga
  -- strict thread matches above, loose matches on Subject: below --
2001-01-11  4:58 Floating point broken between 2.4.0-ac4 and -ac5? junio
2001-01-11 12:42 ` Alan Cox
2001-01-11 17:16   ` junio
2001-01-12  3:27 ` Aaron Lehmann

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=20010111195316.A892@athlon.random \
    --to=andrea@suse.de \
    --cc=ak@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sorisor@Hell.WH8.TU-Dresden.De \
    --cc=torvalds@transmeta.com \
    /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.