From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cnshjsmin05.nokia-sbell.com ([116.246.26.45]:55934 "EHLO cnshjsmin05.nokia-sbell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750888AbeCTFqI (ORCPT ); Tue, 20 Mar 2018 01:46:08 -0400 From: "Yuan, Linyu (NSB - CN/Shanghai)" To: Yonghong Song , "edumazet@google.com" , "ast@fb.com" , "daniel@iogearbox.net" , "diptanu@fb.com" , "netdev@vger.kernel.org" CC: "kernel-team@fb.com" Subject: RE: [PATCH net-next 1/2] net: permit skb_segment on head_frag frag_list skb Date: Tue, 20 Mar 2018 05:30:58 +0000 Message-ID: References: <20180320051618.2691692-1-yhs@fb.com> <20180320051618.2691692-2-yhs@fb.com> In-Reply-To: <20180320051618.2691692-2-yhs@fb.com> Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org List-ID: > -----Original Message----- > From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org] > On Behalf Of Yonghong Song > Sent: Tuesday, March 20, 2018 1:16 PM > To: edumazet@google.com; ast@fb.com; daniel@iogearbox.net; > diptanu@fb.com; netdev@vger.kernel.org > Cc: kernel-team@fb.com > Subject: [PATCH net-next 1/2] net: permit skb_segment on head_frag frag_list > skb > > > while (pos < offset + len) { > if (i >= nfrags) { > - BUG_ON(skb_headlen(list_skb)); > + if (skb_headlen(list_skb) && check_list_skb == list_skb) { Here cause next BUG_ON always false. > + } else { > + BUG_ON(skb_headlen(list_skb) && check_list_skb == > list_skb); Just according code logic, no need BUG_ON, right? > > - i = 0; > - nfrags = skb_shinfo(list_skb)->nr_frags; > - frag = skb_shinfo(list_skb)->frags; > - frag_skb = list_skb; > + i = 0; > + nfrags = skb_shinfo(list_skb)->nr_frags; > + frag = skb_shinfo(list_skb)->frags; > + frag_skb = list_skb; > > - BUG_ON(!nfrags); > + BUG_ON(!nfrags); > > - if (skb_orphan_frags(frag_skb, GFP_ATOMIC) || > - skb_zerocopy_clone(nskb, frag_skb, > - GFP_ATOMIC)) > - goto err; > + if (skb_orphan_frags(frag_skb, GFP_ATOMIC) || > + skb_zerocopy_clone(nskb, frag_skb, > GFP_ATOMIC)) > + goto err; > > - list_skb = list_skb->next; > + list_skb = list_skb->next; > + check_list_skb = list_skb; > + } > } > > if (unlikely(skb_shinfo(nskb)->nr_frags >= > -- > 2.9.5