All of lore.kernel.org
 help / color / mirror / Atom feed
* [4/3] fix initrd memcpy
@ 2004-12-21  4:56 William Lee Irwin III
  2004-12-21  6:28 ` David S. Miller
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: William Lee Irwin III @ 2004-12-21  4:56 UTC (permalink / raw)
  To: sparclinux

The latter hunk of the forwarded patch has already been applied, so
please apply the patch as it appears in the un-forwarded part. I've
taken some liberties in adding the Acked/Signed-off lines in what I
hope is an agreeable way.

On Sun, Nov 14, 2004 at 11:16:40PM -0500, Jurij Smakov wrote:
> As a followup: I have tried fiddling more with the memcpy() routine.
> Insight from Rob Radez and comments in arch/sparc/lib/blockops.S suggest,
> that __copy_1page assumes that the memory regions copied are aligned on a
> double-word boundary. I have checked, that in the cramfs case it wasn't
> true, the destination was not aligned on the double-word boundary. So, I
> have implemented a simple workaround (see patch below), which together
> with Bob Breuer's iommu.c fix [0] made 2.6.8 kernel to boot on my
> machine (SS10 with Ross Hypersparc CPU)! I also confirm, that adding the
> suggested fix to the srmmu.c also [1] breaks sunlance on my machine. With
> that "fix" the line 'eth0: Memory error, status 88c3, addr 3713ba' is
> displayed continuously during boot, when it comes to configuring network
> interfaces. The successful patch for me is:

Acked-by: William Irwin  <wli@holomorphy.com>
Acked-by: Dave Miller  <davem@davemloft.net>
Signed-off-by: Jurij Smakov <jurij@wooyd.org>

Index: sparc32-2.6.10-rc3/include/asm-sparc/string.h
=================================--- sparc32-2.6.10-rc3.orig/include/asm-sparc/string.h	2004-06-15 22:18:38.000000000 -0700
+++ sparc32-2.6.10-rc3/include/asm-sparc/string.h	2004-12-20 20:53:00.585527010 -0800
@@ -40,6 +40,9 @@
 
 	if(n <= 32) {
 		__builtin_memcpy(to, from, n);
+	} else if (((unsigned int) to & 7) != 0) {
+		/* Destination is not aligned on the double-word boundary */
+		__memcpy(to, from, n);
 	} else {
 		switch(n) {
 		case PAGE_SIZE:

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-12-21  8:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-21  4:56 [4/3] fix initrd memcpy William Lee Irwin III
2004-12-21  6:28 ` David S. Miller
2004-12-21  6:39 ` William Lee Irwin III
2004-12-21  7:00 ` William Lee Irwin III
2004-12-21  7:58 ` David S. Miller
2004-12-21  8:28 ` William Lee Irwin III

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.