diff options
Diffstat (limited to 'powerpc-ipv6.patch')
-rw-r--r-- | powerpc-ipv6.patch | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/powerpc-ipv6.patch b/powerpc-ipv6.patch deleted file mode 100644 index 44988bd43..000000000 --- a/powerpc-ipv6.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 85682a7e3b9c664995ad477520f917039afdc330 Mon Sep 17 00:00:00 2001 -From: Christophe Leroy <christophe.leroy@c-s.fr> -Date: Mon, 10 Sep 2018 06:09:04 +0000 -Subject: powerpc: fix csum_ipv6_magic() on little endian platforms - -On little endian platforms, csum_ipv6_magic() keeps len and proto in -CPU byte order. This generates a bad results leading to ICMPv6 packets -from other hosts being dropped by powerpc64le platforms. - -In order to fix this, len and proto should be converted to network -byte order ie bigendian byte order. However checksumming 0x12345678 -and 0x56341278 provide the exact same result so it is enough to -rotate the sum of len and proto by 1 byte. - -PPC32 only support bigendian so the fix is needed for PPC64 only - -Fixes: e9c4943a107b ("powerpc: Implement csum_ipv6_magic in assembly") -Reported-by: Jianlin Shi <jishi@redhat.com> -Reported-by: Xin Long <lucien.xin@gmail.com> -Cc: <stable@vger.kernel.org> # 4.18+ -Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> -Tested-by: Xin Long <lucien.xin@gmail.com> -Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> ---- - arch/powerpc/lib/checksum_64.S | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/arch/powerpc/lib/checksum_64.S b/arch/powerpc/lib/checksum_64.S -index 886ed94b9c13..d05c8af4ac51 100644 ---- a/arch/powerpc/lib/checksum_64.S -+++ b/arch/powerpc/lib/checksum_64.S -@@ -443,6 +443,9 @@ _GLOBAL(csum_ipv6_magic) - addc r0, r8, r9 - ld r10, 0(r4) - ld r11, 8(r4) -+#ifdef CONFIG_CPU_LITTLE_ENDIAN -+ rotldi r5, r5, 8 -+#endif - adde r0, r0, r10 - add r5, r5, r7 - adde r0, r0, r11 --- -cgit 1.2-0.3.lf.el7 - |