--- 2.4.2-athlon/arch/i386/lib/mmx.c.~1~ Sat Feb 10 02:34:03 2001 +++ 2.4.2-athlon/arch/i386/lib/mmx.c Fri Mar 2 02:16:15 2001 @@ -3,6 +3,7 @@ #include #include +#include /* * MMX 3DNow! library helper functions @@ -25,8 +26,14 @@ void *_mmx_memcpy(void *to, const void *from, size_t len) { - void *p=to; - int i= len >> 6; /* len/64 */ + void *p; + int i; + + if (in_interrupt()) + return __memcpy(to, from, len); + + p = to; + i = len >> 6; /* len/64 */ kernel_fpu_begin(); --- 2.4.2-athlon/include/asm-i386/string.h.~1~ Tue Feb 27 06:00:30 2001 +++ 2.4.2-athlon/include/asm-i386/string.h Fri Mar 2 02:18:56 2001 @@ -287,13 +287,6 @@ #ifdef CONFIG_X86_USE_3DNOW -/* All this just for in_interrupt() ... */ - -#include -#include -#include -#include -#include #include /* @@ -302,14 +295,14 @@ static inline void * __constant_memcpy3d(void * to, const void * from, size_t len) { - if(len<512 || in_interrupt()) + if (len < 512) return __constant_memcpy(to, from, len); return _mmx_memcpy(to, from, len); } extern __inline__ void *__memcpy3d(void *to, const void *from, size_t len) { - if(len<512 || in_interrupt()) + if (len < 512) return __memcpy(to, from, len); return _mmx_memcpy(to, from, len); } --- 2.4.2-athlon/include/asm-i386/string-486.h.~1~ Fri Mar 2 01:12:34 2001 +++ 2.4.2-athlon/include/asm-i386/string-486.h Fri Mar 2 02:18:56 2001 @@ -352,11 +352,6 @@ #ifdef CONFIG_X86_USE_3DNOW -#include -#include -#include -#include -#include #include /* @@ -365,14 +360,14 @@ static inline void * __constant_memcpy3d(void * to, const void * from, size_t len) { - if(len<512 || in_interrupt()) + if (len < 512) return __memcpy_c(to, from, len); return _mmx_memcpy(to, from, len); } static inline void *__memcpy3d(void *to, const void *from, size_t len) { - if(len<512 || in_interrupt()) + if(len < 512) return __memcpy_g(to, from, len); return _mmx_memcpy(to, from, len); }