[PATCH] ac7 Athlon-SMP

From: Tom Leete (tleete@mountain.net)
Date: Sat Jun 03 2000 - 07:55:52 EST


Hello,

Here is a fix for the K7-SMP compilation failures I reported yesterday.

The memcpy3d functions are moved to arch/i386/lib/mmx.c with the
corresponding changes to asm-i386/mmx.h. This also allowed a cleanup
of asm-i386/string.h.

Cheers,
Tom

--- linux.ac/include/asm-i386/string.h.orig Thu Jun 1 02:08:37 2000
+++ linux.ac/include/asm-i386/string.h Sat Jun 3 11:35:15 2000
@@ -287,32 +287,11 @@
 
 #ifdef CONFIG_X86_USE_3DNOW
 
-/* All this just for in_interrupt() ... */
-
-#include <asm/system.h>
-#include <asm/ptrace.h>
-#include <linux/smp.h>
-#include <linux/spinlock.h>
-#include <linux/interrupt.h>
 #include <asm/mmx.h>
 
 /*
  * This CPU favours 3DNow strongly (eg AMD Athlon)
  */
-
-static inline void * __constant_memcpy3d(void * to, const void * from, size_t len)
-{
- if(len<512 || in_interrupt())
- 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())
- return __memcpy(to, from, len);
- return _mmx_memcpy(to, from, len);
-}
 
 #define memcpy(t, f, n) \
 (__builtin_constant_p(n) ? \
--- linux.ac/include/asm-i386/mmx.h.orig Sat Jun 3 11:10:06 2000
+++ linux.ac/include/asm-i386/mmx.h Sat Jun 3 11:32:19 2000
@@ -10,5 +10,7 @@
 extern void *_mmx_memcpy(void *to, const void *from, size_t size);
 extern void mmx_clear_page(void *page);
 extern void mmx_copy_page(void *to, void *from);
+extern void *__constant_memcpy3d(void * to, const void * from, size_t len);
+extern void *__memcpy3d(void *to, const void *from, size_t len);
 
 #endif
--- linux.ac/arch/i386/lib/mmx.c.orig Wed Oct 27 21:30:39 1999
+++ linux.ac/arch/i386/lib/mmx.c Sat Jun 3 12:02:47 2000
@@ -1,6 +1,7 @@
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/sched.h>
+#include <asm/hardirq.h>
 
 /*
  * MMX 3DNow! library helper functions
@@ -88,6 +89,21 @@
         stts();
         return p;
 }
+
+void * __constant_memcpy3d(void * to, const void * from, size_t len)
+{
+ if(len<512 || in_interrupt())
+ return __constant_memcpy(to, from, len);
+ return _mmx_memcpy(to, from, len);
+}
+
+void *__memcpy3d(void *to, const void *from, size_t len)
+{
+ if(len<512 || in_interrupt())
+ return __memcpy(to, from, len);
+ return _mmx_memcpy(to, from, len);
+}
+
 
 static void fast_clear_page(void *page)
 {

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



This archive was generated by hypermail 2b29 : Wed Jun 07 2000 - 21:00:17 EST