mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] ppc64: Fix readq & writeq
@ 2004-05-20  5:33 Benjamin Herrenschmidt
  0 siblings, 0 replies; only message in thread
From: Benjamin Herrenschmidt @ 2004-05-20  5:33 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linus Torvalds, Linux Kernel list

Hi Andrew !

This fixes busted asm constraints for readq & writeq implementation
on ppc64 that resulted in garbage beeing generated for writeq (plus
an obvious mistake in the prototype).

Please, apply
Ben.


===== include/asm-ppc64/io.h 1.17 vs edited =====
--- 1.17/include/asm-ppc64/io.h	Sat May 15 12:00:27 2004
+++ edited/include/asm-ppc64/io.h	Wed May 19 16:27:43 2004
@@ -326,7 +326,7 @@
 			     "rldicl %1,%1,32,0\n"
 			     "rlwimi %0,%1,8,8,31\n"
 			     "rlwimi %0,%1,24,16,23\n"
-			     : "=r" (ret), "=r" (tmp) : "b" (addr) , "m" (*addr));
+			     : "=r" (ret) , "=r" (tmp) : "b" (addr) , "m" (*addr));
 	return ret;
 }

@@ -339,7 +339,7 @@
 	return ret;
 }

-static inline void out_le64(volatile unsigned long *addr, int val)
+static inline void out_le64(volatile unsigned long *addr, unsigned long val)
 {
 	unsigned long tmp;

@@ -351,9 +351,9 @@
 			     "rldicl %1,%1,32,0\n"
 			     "rlwimi %0,%1,8,8,31\n"
 			     "rlwimi %0,%1,24,16,23\n"
-			     "std %0,0(%2)\n"
+			     "std %0,0(%3)\n"
 			     "sync"
-			     : "=r" (tmp) : "r" (val), "b" (addr) , "m" (*addr));
+			     : "=&r" (tmp) , "=&r" (val) : "1" (val) , "b" (addr) , "m" (*addr));
 }

 static inline void out_be64(volatile unsigned long *addr, int val)


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/
-- 
Benjamin Herrenschmidt <benh@kernel.crashing.org>


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-05-20  5:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-20  5:33 [PATCH] ppc64: Fix readq & writeq Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®