diff -urNp linux-2.4.20/include/asm-i386/i387.h linux-2.4.20.SUSE/include/asm-i386/i387.h --- linux-2.4.20/include/asm-i386/i387.h 2002-08-03 02:39:45.000000000 +0200 +++ linux-2.4.20.SUSE/include/asm-i386/i387.h 2004-06-15 09:38:14.715131119 +0200 @@ -34,7 +34,7 @@ extern void kernel_fpu_begin(void); #define clear_fpu( tsk ) do { \ if ( tsk->flags & PF_USEDFPU ) { \ - asm volatile("fwait"); \ + asm volatile("fnclex ; fwait"); \ tsk->flags &= ~PF_USEDFPU; \ stts(); \ } \ diff -urNp linux-2.4.20/include/asm-x86_64/i387.h linux-2.4.20.SUSE/include/asm-x86_64/i387.h --- linux-2.4.20/include/asm-x86_64/i387.h 2004-06-15 09:36:39.948011696 +0200 +++ linux-2.4.20.SUSE/include/asm-x86_64/i387.h 2004-06-15 09:37:51.037851293 +0200 @@ -33,7 +33,7 @@ extern int save_i387(struct _fpstate *bu #define clear_fpu( tsk ) do { \ if ( tsk->flags & PF_USEDFPU ) { \ - asm volatile("fwait"); \ + asm volatile("fnclex ; fwait"); \ tsk->flags &= ~PF_USEDFPU; \ stts(); \ } \