Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1633234

[PATCH v2] iov_iter: don't revert iov buffer if csum error

From Ding Tianhong <dingtianhong@huawei.com>
Newsgroups linux.kernel
Subject [PATCH v2] iov_iter: don't revert iov buffer if csum error
Date 2017-04-29 04:40 +0200
Message-ID <tBqsF-8mn-3@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


The patch 327868212381 (make skb_copy_datagram_msg() et.al. preserve
->msg_iter on error) will revert the iov buffer if copy to iter
failed, but it didn't copy any datagram if the skb_checksum_complete
error, so no need to revert any data at this place.

v2: Sabrina notice that return -EFAULT when checksum error is not correct
    here, it would confuse the caller about the return value, so fix it.

Fixes: 327868212381 ("make skb_copy_datagram_msg() et.al. preserve->msg_iter on error")
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
 net/core/datagram.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/net/core/datagram.c b/net/core/datagram.c
index f4947e7..0e6a9a9 100644
--- a/net/core/datagram.c
+++ b/net/core/datagram.c
@@ -768,14 +768,17 @@ int skb_copy_and_csum_datagram_msg(struct sk_buff *skb,
 		if (skb_copy_and_csum_datagram(skb, hlen, &msg->msg_iter,
 					       chunk, &csum))
 			goto fault;
-		if (csum_fold(csum))
+
+		if (csum_fold(csum)) {
+			iov_iter_revert(&msg->msg_iter, chunk);
 			goto csum_error;
+		}
+
 		if (unlikely(skb->ip_summed == CHECKSUM_COMPLETE))
 			netdev_rx_csum_fault(skb->dev);
 	}
 	return 0;
 csum_error:
-	iov_iter_revert(&msg->msg_iter, chunk);
 	return -EINVAL;
 fault:
 	return -EFAULT;
-- 
1.8.3.1

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH v2] iov_iter: don't revert iov buffer if csum error Ding Tianhong <dingtianhong@huawei.com> - 2017-04-29 04:40 +0200
  Re: [PATCH v2] iov_iter: don't revert iov buffer if csum error Al Viro <viro@ZenIV.linux.org.uk> - 2017-04-29 04:50 +0200
    Re: [PATCH v2] iov_iter: don't revert iov buffer if csum error Ding Tianhong <dingtianhong@huawei.com> - 2017-04-29 11:40 +0200
      Re: [PATCH v2] iov_iter: don't revert iov buffer if csum error Al Viro <viro@ZenIV.linux.org.uk> - 2017-04-29 22:50 +0200
        Re: [PATCH v2] iov_iter: don't revert iov buffer if csum error David Miller <davem@davemloft.net> - 2017-05-01 05:00 +0200

csiph-web