From patchwork Thu Nov 24 11:54:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Gobert X-Patchwork-Id: 25471 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp3354110wrr; Thu, 24 Nov 2022 04:04:57 -0800 (PST) X-Google-Smtp-Source: AA0mqf40nv5Zkzt8XVfUdgl6+0h+AdyvU0ukJxxdI14q/U+4jZztwlr42rnuJbpEeclbavf8T5Gi X-Received: by 2002:a17:906:76c9:b0:7bb:2867:7a92 with SMTP id q9-20020a17090676c900b007bb28677a92mr2606198ejn.441.1669291497620; Thu, 24 Nov 2022 04:04:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669291497; cv=none; d=google.com; s=arc-20160816; b=Xs/NRD7AyasJzPgArKT62Q/CPZ8ME35k4uMd7yqyWOdLG4HabBXP0lBWgIltbAHYTD L6DzmAm0mZcLN63TbvNOJnBjOl4IA2+ajgpyz3x0G1B5lSQp8+wcuvW+C+PMxkvXKnPT laSqRtj//SerQtNAlQqedqPY6u57Q9ykLuWwJnQtQmST6tQVn79H9Yw/7StlBee0MTq9 rJbtfqZzoC/AjII9BnN5YmuCsemR10jMUGrvor98JVx+NSYafQP3+Exe+dziyuDxUw8z 4N8hUiOj1hoYYH/A9Xs8KEq9AcN5sNJ97D5/ji43oLiZXvxJswznBjkd5P//ji2zt/tN 7/DA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:content-disposition:mime-version :message-id:subject:to:from:date:dkim-signature; bh=G6iVGny6VRURevBsyqO7R1HKaQUKuUiW86Zp2Vq5Tz8=; b=af9B13rMAHPouvWAJidt1H3hO52riKGjMjjVYjagj8r+D+3yx6+o8hHz3HO2LQSmPm Ye0+1x0CA/qwmg6mBigpGtMVCbqyOCT3h/ebbimifJ3wbMY/dkGk8nE8nZF34MUKFLbn pgQvTOWXovgqc6/0vDQBAkT7TvUeaEGVRyGVJLqCnf6Xt7WQCZZx/3BRAwmde9q5Lhuv 5Q8G/7U+cs7vKzeZDXiV/AQ8kT6qggZX4Wh0lJuPM9efB8jBkwjPaiLRFsWnmJDOasyV aVRclXT+mGtuu3S72oZLSoyqsZeH5NLJiXX317vF9tSGJibWjiX84u3P0a0Wg4/8bMHo 9JHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Mv2M6G4I; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id la26-20020a170907781a00b0078ddff4b3absi505795ejc.423.2022.11.24.04.04.32; Thu, 24 Nov 2022 04:04:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Mv2M6G4I; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229735AbiKXLyi (ORCPT + 99 others); Thu, 24 Nov 2022 06:54:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229583AbiKXLyh (ORCPT ); Thu, 24 Nov 2022 06:54:37 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0EFEC6060; Thu, 24 Nov 2022 03:54:36 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so3783086wma.1; Thu, 24 Nov 2022 03:54:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:from:to:cc:subject:date:message-id:reply-to; bh=G6iVGny6VRURevBsyqO7R1HKaQUKuUiW86Zp2Vq5Tz8=; b=Mv2M6G4Ij/EMwkUN8XHPEd4TyhXrEXpyfevG3WSgfcAUlmWOjNWT7Ik0QX8IeF1QEd CmdNn9Uh2h7aEgb6168ozGZngN11XWJwGPeHxtOwLDsCPkHw5yTnDToMvFbWxeFTf/nC OSK15MP9OU4n38ZYbK6AnIYqLHOc53vVMGXny8gixoZ+MdmC1QLa5oFzCC0BAuXF3tHQ GGuMBqu8DGtDDpNYtcdBSfHQ9wKLUyWtk94r3ZhokIMaolM5JJv9H7x78fyYKBHXnpxD 4Nt6xnFUFLNxC3St0Y0ihqPSKXa+manVYUu9/sLnsUAjE5iX6LSsR6wgwiz4RdmtQ1xF cn8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=G6iVGny6VRURevBsyqO7R1HKaQUKuUiW86Zp2Vq5Tz8=; b=ZaQW6DjQNKSXsAPfMp/0P2M9b/zQ7GWjzvpspD6N+OtgkxSgNoaW+G/l+I0pQ0kr0e DcF0LmUDi7BjEPCiVAjuf8UKj+IxGyfZ6d5shnsN4U9YVJvBVgzsV0P+2KKhl7q8fxMd O2Ct3Xf1wwygA90/hYNMvZTnXk15ST2FvO8s7oriKfnY55wqcNaYbvZOq1lLQs9bDPum 9tNyhB2NNN1zAPQULMGe2wCM7phEONjjV10yj8x+K2a2r3JKQqc+weC0Jw0SzoZVLgi2 2MQqNu0jB7lumGLCLvDyvaoU9QAccm/Vh02SRQRFn6WYRbc1KjM8InfMBobg/3OmAFps +kRw== X-Gm-Message-State: ANoB5pmnU6nM1vFMuFyNTAAv+bGJGU2Oup9RHOnz5llOA83XPepN65S2 Wn0bMWYUo0HtNXsbJWtPPGs= X-Received: by 2002:a05:600c:1e1a:b0:3cf:7959:d8be with SMTP id ay26-20020a05600c1e1a00b003cf7959d8bemr15674994wmb.85.1669290875517; Thu, 24 Nov 2022 03:54:35 -0800 (PST) Received: from debian ([89.238.191.199]) by smtp.gmail.com with ESMTPSA id f14-20020a05600c154e00b003c6f3e5ba42sm6228191wmg.46.2022.11.24.03.54.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Nov 2022 03:54:34 -0800 (PST) Date: Thu, 24 Nov 2022 12:54:19 +0100 From: Richard Gobert To: edumazet@google.com, davem@davemloft.net, yoshfuji@linux-ipv6.org, dsahern@kernel.org, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/2] gro: simplify flush logic Message-ID: <20221124115316.GA73682@debian> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750379001502656734?= X-GMAIL-MSGID: =?utf-8?q?1750379001502656734?= In tcp_gro_receive, the variable mss is sometimes assigned 1 to make the check "flush = len < mss" fail, and indirectly set flush to 0. This somewhat obfuscates the meaning of the code. Also, setting mss to 1 doesn't influence the value of flush in the case when skb_is_gso(skb) is true. This patch changes the code to set flush to 0 directly. The out_check_final can then be moved, which avoids unnecessary conditions. Signed-off-by: Richard Gobert --- net/ipv4/tcp_offload.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c index 45dda7889387..f17271e5c7c5 100644 --- a/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c @@ -187,7 +187,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) unsigned int len; unsigned int thlen; __be32 flags; - unsigned int mss = 1; + unsigned int mss; unsigned int hlen; unsigned int off; int flush = 1; @@ -229,6 +229,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) goto found; } p = NULL; + flush = 0; goto out_check_final; found: @@ -270,19 +271,19 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) #endif if (flush || skb_gro_receive(p, skb)) { - mss = 1; + flush = 0; goto out_check_final; } tcp_flag_word(th2) |= flags & (TCP_FLAG_FIN | TCP_FLAG_PSH); -out_check_final: /* Force a flush if last segment is smaller than mss. */ if (unlikely(skb_is_gso(skb))) flush = len != NAPI_GRO_CB(skb)->count * skb_shinfo(skb)->gso_size; else flush = len < mss; +out_check_final: flush |= (__force int)(flags & (TCP_FLAG_URG | TCP_FLAG_PSH | TCP_FLAG_RST | TCP_FLAG_SYN | TCP_FLAG_FIN)); From patchwork Thu Nov 24 11:55:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Gobert X-Patchwork-Id: 25470 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp3353633wrr; Thu, 24 Nov 2022 04:04:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf5nPXNrmALVh1tkfx8/hj7lBfIK9EBVxzskXVch86NOW2Uo45MZ3GOWJfDlB91tK3Mz4aiC X-Received: by 2002:a05:651c:2122:b0:276:ffd3:aec5 with SMTP id a34-20020a05651c212200b00276ffd3aec5mr4075923ljq.520.1669291446486; Thu, 24 Nov 2022 04:04:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669291446; cv=none; d=google.com; s=arc-20160816; b=jqEwJ+slX1OnDCfL0XVwxyxrU+KZByYSxHzQbSFE1EB4OAOoB12LGMxjEzbmN/I5Az J3UA55iORwIZt8SN+a/XDziCHQVa+kaSRULrRonTTjPfKrhnvmvh4W79xfn62TCyXh1e MjOjWoaQTv4mitfQj/jRnwpb4walZ0QZvQu5oP/M8EZjTWX5GnAsWQc+ITeVPL1quOj5 N4noaz5eyoOM1LDg8TLDwcE0xzPyomwe9EC+F8IhUO2DxEPFXMk11vw6vUmrjEHj+CcN wTxoUkKjJ5ldQVLgdyds7I3morr0/lObKxG96skxTMW9p8FC+ZL+2aL8MnF85pRv3XsT qtEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:content-disposition:mime-version :message-id:subject:to:from:date:dkim-signature; bh=uFPDvjtCbP4Fl3gQ9OrK16yYyHn0B4VM0PaF8ZquGSE=; b=yWufwX+9tDl+A/RISaZspQelL7qaf5syPM8gWKRibYJDEPEPV3k2BS6AZ58D/vVUkT sBNveCG8KrraUJCD/InCgjeYaLWze/wsI342N83oPLXLdqlSnll0OplIpJ4tbQhNWA7Z 8560Tc0gRt80Q/EnYRa1Ma01xyvih+ZzfZ/BEjS+2Dq1c43g00vGBSeS6CPIF76lvk5/ 0UVZ7yJvHBn1UnrgPUbL4iZsXqSGDnjFjDHov0ewVysJjgb2O9DwjbN26JDp4QBV37J2 jp1jNV88E1P0oYIsuLcl6sQyiuoekIhPx1kBw8ZogfUTr2dqESpl1Zt8LMMOWOz09LP7 EVHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="T/FnsTcT"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ht20-20020a170907609400b0079800b8172bsi96017ejc.450.2022.11.24.04.03.39; Thu, 24 Nov 2022 04:04:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="T/FnsTcT"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230165AbiKXLzy (ORCPT + 99 others); Thu, 24 Nov 2022 06:55:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230002AbiKXLzt (ORCPT ); Thu, 24 Nov 2022 06:55:49 -0500 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE0D6C663A; Thu, 24 Nov 2022 03:55:48 -0800 (PST) Received: by mail-wm1-x329.google.com with SMTP id m7-20020a05600c090700b003cf8a105d9eso1064036wmp.5; Thu, 24 Nov 2022 03:55:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:from:to:cc:subject:date:message-id:reply-to; bh=uFPDvjtCbP4Fl3gQ9OrK16yYyHn0B4VM0PaF8ZquGSE=; b=T/FnsTcT2xkrA3yQ7Q2zthHnE2uoosNgSDeCjWjQkBX7Sael4MOqvmSL5UuvyvnV7z ah1rVgohqfDCitHE0id8Jw8unFHfZjGV5Bd/dljfEMHnKuIBpFNjyWhU92sovQ+I3yWQ WnNUD/4H6Rn0tuBOaz4v987chDB6Da8qOZVz9wd/oNsolUFLTY6u78vmf7m6UUmw79da ORmHnrQdrcGbj+V5gxg+n9M8lkCaOiMuVbxG0o879IVDyHJkd8F1htwsmHvYW4wtl2Kw ktFaT2SZwWCpdN/oKjfr6JsO/laMimQHBxSzGwAiLPtCN/fjQzj/T+i85VaMrWpP1jvy Pf4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=user-agent:content-disposition:mime-version:message-id:subject:to :from:date:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uFPDvjtCbP4Fl3gQ9OrK16yYyHn0B4VM0PaF8ZquGSE=; b=Jb9oTydA/nyQgAWiuYzTg95WkWt3JcwoMBvLWhmbL7XQvW/5OcB1WTxM/cKeeqaTyj 2/RYmQXz/HA0nqgiyKkCWrIuNAx7Bsqz507ctGl37Xuk+NlwHLSk+iFFUBlrxvWeRX71 ZoxDnplXDDEUfTECPoNYy/2P/wEhlvfAmePq+KD8XPSjtVXIg+b6FuC5TnMMuoNyE5ca 9DPQsT+IQvpheLwAf4D4r2MgnQhYbsDjorabsB1keOnIOd14lBzeMEvTX6xoOu/xcwyo 8nwNVVpIbZKmscQDsrgJZjBfgC3iDiRhNmON55E9kKl2ue2F7mLHtmz5eJksCbFwo9s5 5cUA== X-Gm-Message-State: ANoB5pncX9h0g/8tCW8KMu+2umtLqhwfpVKrbD+gLehgntwUaq7ajGVQ 0wg8iojt0w/kVU5rCT72/xs= X-Received: by 2002:a05:600c:288:b0:3cf:758f:161f with SMTP id 8-20020a05600c028800b003cf758f161fmr21979270wmk.54.1669290947271; Thu, 24 Nov 2022 03:55:47 -0800 (PST) Received: from debian ([89.238.191.199]) by smtp.gmail.com with ESMTPSA id l22-20020a05600c4f1600b003cffd3c3d6csm1717612wmq.12.2022.11.24.03.55.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Nov 2022 03:55:46 -0800 (PST) Date: Thu, 24 Nov 2022 12:55:27 +0100 From: Richard Gobert To: edumazet@google.com, davem@davemloft.net, yoshfuji@linux-ipv6.org, dsahern@kernel.org, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/2] gro: change confusing use of flush variable Message-ID: <20221124115507.GA73719@debian> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750378947679657010?= X-GMAIL-MSGID: =?utf-8?q?1750378947679657010?= The variable "flush" in tcp_gro_received is confusingly used for two different purposes. The first use is to keep track whether we are going to flush the SKB at the end of the function (the same use as in other GRO receive functions). The second use is just after the "found" label, where it is used to keep track whether we are going to skip the call to skb_gro_receive that merges the SKBs. This is entirely not related to the previous use, but uses the same variable. To make the code more readable, this patch moves the second use to a separate variable called "dont_merge". Signed-off-by: Richard Gobert --- net/ipv4/tcp_offload.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c index f17271e5c7c5..7ca6be2f56df 100644 --- a/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c @@ -191,6 +191,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) unsigned int hlen; unsigned int off; int flush = 1; + int dont_merge; int i; off = skb_gro_offset(skb); @@ -234,13 +235,13 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) found: /* Include the IP ID check below from the inner most IP hdr */ - flush = NAPI_GRO_CB(p)->flush; - flush |= (__force int)(flags & TCP_FLAG_CWR); - flush |= (__force int)((flags ^ tcp_flag_word(th2)) & + dont_merge = NAPI_GRO_CB(p)->flush; + dont_merge |= (__force int)(flags & TCP_FLAG_CWR); + dont_merge |= (__force int)((flags ^ tcp_flag_word(th2)) & ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH)); - flush |= (__force int)(th->ack_seq ^ th2->ack_seq); + dont_merge |= (__force int)(th->ack_seq ^ th2->ack_seq); for (i = sizeof(*th); i < thlen; i += 4) - flush |= *(u32 *)((u8 *)th + i) ^ + dont_merge |= *(u32 *)((u8 *)th + i) ^ *(u32 *)((u8 *)th2 + i); /* When we receive our second frame we can made a decision on if we @@ -250,7 +251,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) if (NAPI_GRO_CB(p)->flush_id != 1 || NAPI_GRO_CB(p)->count != 1 || !NAPI_GRO_CB(p)->is_atomic) - flush |= NAPI_GRO_CB(p)->flush_id; + dont_merge |= NAPI_GRO_CB(p)->flush_id; else NAPI_GRO_CB(p)->is_atomic = false; @@ -261,16 +262,16 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb) * is bigger than our mss. */ if (unlikely(skb_is_gso(skb))) - flush |= (mss != skb_shinfo(skb)->gso_size); + dont_merge |= (mss != skb_shinfo(skb)->gso_size); else - flush |= (len - 1) >= mss; + dont_merge |= (len - 1) >= mss; - flush |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq); + dont_merge |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq); #ifdef CONFIG_TLS_DEVICE - flush |= p->decrypted ^ skb->decrypted; + dont_merge |= p->decrypted ^ skb->decrypted; #endif - if (flush || skb_gro_receive(p, skb)) { + if (dont_merge || skb_gro_receive(p, skb)) { flush = 0; goto out_check_final; }