--- /dev/null
+From fe92f874f09145a6951deacaa4961390238bbe0d Mon Sep 17 00:00:00 2001
+From: Michael Lass <bevan@bi-co.net>
+Date: Wed, 31 Jan 2024 16:52:20 +0100
+Subject: net: Fix from address in memcpy_to_iter_csum()
+
+From: Michael Lass <bevan@bi-co.net>
+
+commit fe92f874f09145a6951deacaa4961390238bbe0d upstream.
+
+While inlining csum_and_memcpy() into memcpy_to_iter_csum(), the from
+address passed to csum_partial_copy_nocheck() was accidentally changed.
+This causes a regression in applications using UDP, as for example
+OpenAFS, causing loss of datagrams.
+
+Fixes: dc32bff195b4 ("iov_iter, net: Fold in csum_and_memcpy()")
+Cc: David Howells <dhowells@redhat.com>
+Cc: stable@vger.kernel.org
+Cc: regressions@lists.linux.dev
+Signed-off-by: Michael Lass <bevan@bi-co.net>
+Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
+Acked-by: David Howells <dhowells@redhat.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/core/datagram.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/core/datagram.c
++++ b/net/core/datagram.c
+@@ -751,7 +751,7 @@ size_t memcpy_to_iter_csum(void *iter_to
+ size_t len, void *from, void *priv2)
+ {
+ __wsum *csum = priv2;
+- __wsum next = csum_partial_copy_nocheck(from, iter_to, len);
++ __wsum next = csum_partial_copy_nocheck(from + progress, iter_to, len);
+
+ *csum = csum_block_add(*csum, next, progress);
+ return 0;