It works! I applied the patch to 
linux-2.6.17 + patch-2.6.17-rc1
and tried icmp, tcp and udp as well as sftp with 
ipsec and they all worked. 

Thanks!!!!

Regards,
Joy

>Herbert Xu writes:
>
>> Interesting.  We were previously off by 28 bytes, now we're off by 8 :)
>
>You missed a couple of 'beqlr' instructions (branch if equal to LR).
>I'd be interested to know if it still fails with the patch below.
>
>Thanks,
>Paul.
>
>diff --git a/arch/powerpc/lib/memcpy_64.S b/arch/powerpc/lib/memcpy_64.S
>index fd66acf..7173ba9 100644
>--- a/arch/powerpc/lib/memcpy_64.S
>+++ b/arch/powerpc/lib/memcpy_64.S
>@@ -11,6 +11,7 @@ #include <asm/ppc_asm.h>
> 
>       .align  7
> _GLOBAL(memcpy)
>+      std     r3,48(r1)       /* save destination pointer for return value */
>       mtcrf   0x01,r5
>       cmpldi  cr1,r5,16
>       neg     r6,r3           # LS 3 bits = # bytes to 8-byte dest bdry
>@@ -38,7 +39,7 @@ _GLOBAL(memcpy)
>       stdu    r9,16(r3)
>       bdnz    1b
> 3:    std     r8,8(r3)
>-      beqlr
>+      beq     3f
>       addi    r3,r3,16
>       ld      r9,8(r4)
> .Ldo_tail:
>@@ -53,7 +54,8 @@ _GLOBAL(memcpy)
> 2:    bf      cr7*4+3,3f
>       rotldi  r9,r9,8
>       stb     r9,0(r3)
>-3:    blr
>+3:    ld      r3,48(r1)       /* return dest pointer */
>+      blr
> 
> .Lsrc_unaligned:
>       srdi    r6,r5,3
>@@ -115,7 +117,7 @@ _GLOBAL(memcpy)
> 5:    srd     r12,r9,r11
>       or      r12,r8,r12
>       std     r12,24(r3)
>-      beqlr
>+      beq     4f
>       cmpwi   cr1,r5,8
>       addi    r3,r3,32
>       sld     r9,r9,r10
>@@ -167,4 +169,5 @@ _GLOBAL(memcpy)
> 3:    bf      cr7*4+3,4f
>       lbz     r0,0(r4)
>       stb     r0,0(r3)
>-4:    blr
>+4:    ld      r3,48(r1)       /* return dest pointer */
>+      blr
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to