From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751811AbdECHV3 (ORCPT ); Wed, 3 May 2017 03:21:29 -0400 Received: from szxga02-in.huawei.com ([45.249.212.188]:5853 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751014AbdECHVX (ORCPT ); Wed, 3 May 2017 03:21:23 -0400 Subject: Miss it//Re: [PATCH v3] iov_iter: don't revert iov buffer if csum error To: David Miller , , , , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , LinuxArm , "weiyongjun (A)" , Al Viro References: <12d4d81f-40c7-c83d-11d6-290acc084695@huawei.com> From: Ding Tianhong Message-ID: <33b65653-6b83-6db2-4393-b306caae7d92@huawei.com> Date: Wed, 3 May 2017 15:15:51 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <12d4d81f-40c7-c83d-11d6-290acc084695@huawei.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.23.32] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020201.590983F7.00D9,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 1e3082202d99be7d92164585c30a2a57 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Miss it, it is already in the kernel tree, sorry for the noisy. On 2017/5/3 15:02, Ding Tianhong wrote: > 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. > > v3: According AI's suggestion, directly return -EINVAL when __skb_checksum_complete() > return error is a more simple solution. > > Fixes: 327868212381 ("make skb_copy_datagram_msg() et.al. preserve->msg_iter on error") > Signed-off-by: Ding Tianhong > Signed-off-by: Wei Yongjun > --- > net/core/datagram.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/core/datagram.c b/net/core/datagram.c > index 0306543..726bf8a 100644 > --- a/net/core/datagram.c > +++ b/net/core/datagram.c > @@ -719,7 +719,7 @@ int skb_copy_and_csum_datagram_msg(struct sk_buff *skb, > > if (msg_data_left(msg) < chunk) { > if (__skb_checksum_complete(skb)) > - goto csum_error; > + return -EINVAL; > if (skb_copy_datagram_msg(skb, hlen, msg, chunk)) > goto fault; > } else { >