[PATCH] amd64: Fix csum_partial_copy_generic()

From: gus Gusenleitner Klaus
Date: Wed Oct 18 2023 - 02:22:37 EST


The checksum calculation is wrong in case of an source buffer
containing zero bytes only. The expected return value is 0, the
actual return value is 0xfffffff.

This problem occurs when a ICMP echo reply is sent that has set
zero identifier, sequence number and data.

Signed-off-by: Klaus Gusenleitner <gus@xxxxxxxx>
---
arch/x86/lib/csum-copy_64.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S
index d9e16a2cf285..c8391b4f3dea 100644
--- a/arch/x86/lib/csum-copy_64.S
+++ b/arch/x86/lib/csum-copy_64.S
@@ -44,7 +44,7 @@ SYM_FUNC_START(csum_partial_copy_generic)
movq %r13, 3*8(%rsp)
movq %r15, 4*8(%rsp)

- movl $-1, %eax
+ movl $0, %eax
xorl %r9d, %r9d
movl %edx, %ecx
cmpl $8, %ecx
--
2.30.2