From patchwork Fri Feb 3 22:29:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 723957 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vFWkz3fkPz9s3s for ; Sat, 4 Feb 2017 09:29:47 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="IzfRZIXv"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752811AbdBCW3p (ORCPT ); Fri, 3 Feb 2017 17:29:45 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:35411 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752376AbdBCW3o (ORCPT ); Fri, 3 Feb 2017 17:29:44 -0500 Received: by mail-pg0-f65.google.com with SMTP id 204so3013065pge.2 for ; Fri, 03 Feb 2017 14:29:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=u8Vg5HFhgf8aLGkfmTKFQ4mBww4I0cQ933a2vvLE7ig=; b=IzfRZIXvD1LFgS2i6KaeWu7VhvZKPBSYqO1fatqZud3Xg39g2snpEOAeo3VeJCkJMc id2bthdnCfaLPx0DGc+db6/Df97HjnTTuQU7/9kfafbSmjKaEOghU3xr+NwZWseushuD ey+/WMQ97OTqT/kKn7xRMVmLUEv1yUpoo4KgWlshFxMEP3yt5CPJlg3TGMhq8L+LxsgD BFdKhMuIJZ20tx1Ddj1j3JyIUtTCsjgFiFr/8/CS6wbduzMiFTlVfNeh0iSEHXU6X+s7 TpoLSJhGosE4So0r24BbDpzM9XN47VbiImMBIrni3qezfhTxHeTJgOvAIhGYMe3/GBjq NPpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=u8Vg5HFhgf8aLGkfmTKFQ4mBww4I0cQ933a2vvLE7ig=; b=s1t21BuevO2ZdCNV+seV540gLkYbpGb5PtvQEU4fzvbQnPUslisJZtEh7doTpV/Xg5 or010ai+QWxeYAOfaqAnYrRrZ4bYVFFI32VMrT5y26cmU1bv1I4+IP88vszH/g5Se9qz kn9NPrINn4Zt/NxU0do7rGHWK1dTHXtm6GznJ9R28zFnQvtaJpbJ/PA2pFq11Ssa21hi DahlNbSGWI5Ah2bR0QxkfXWupCYLU6q8vq9RctUbpecOI6skquf+P2zzekx2OokIZ0GZ QdTHdS2L/BinY7PMjJp1YRmq/0wo8h/iSNJc4hDhDyU9qsTdB3gdEmjLD8c5FENsct5x YBGA== X-Gm-Message-State: AIkVDXLsh9adVGW7rIO8WQekLQnksTDcPpwLd6KVc7+kO83oygTvvqMqha5d7CfweSKtRQ== X-Received: by 10.99.153.1 with SMTP id d1mr20933336pge.44.1486160983608; Fri, 03 Feb 2017 14:29:43 -0800 (PST) Received: from ?IPv6:2620:0:1000:1704:b5c3:b0cb:99e6:d786? ([2620:0:1000:1704:b5c3:b0cb:99e6:d786]) by smtp.googlemail.com with ESMTPSA id a1sm7985378pgc.14.2017.02.03.14.29.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 Feb 2017 14:29:43 -0800 (PST) Message-ID: <1486160982.21871.111.camel@edumazet-glaptop3.roam.corp.google.com> Subject: [PATCH net-next] net: skb_needs_check() accepts CHECKSUM_NONE for tx From: Eric Dumazet To: David Miller Cc: netdev , Willem de Bruijn , Maciej =?UTF-8?Q?=C5=BBenczykowski?= , Eric Dumazet , Dmitry Vyukov Date: Fri, 03 Feb 2017 14:29:42 -0800 X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Eric Dumazet My recent change missed fact that UFO would perform a complete UDP checksum before segmenting in frags. In this case skb->ip_summed is set to CHECKSUM_NONE. We need to add this valid case to skb_needs_check() Fixes: b2504a5dbef3 ("net: reduce skb_warn_bad_offload() noise") Signed-off-by: Eric Dumazet Cc: Willem de Bruijn --- net/core/dev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 727b6fda0e8c6497ee42dc6d3065e326e9192c21..2ba5ef33e83909871fcf69a036062e00f0cf86c7 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2637,9 +2637,10 @@ EXPORT_SYMBOL(skb_mac_gso_segment); static inline bool skb_needs_check(struct sk_buff *skb, bool tx_path) { if (tx_path) - return skb->ip_summed != CHECKSUM_PARTIAL; - else - return skb->ip_summed == CHECKSUM_NONE; + return skb->ip_summed != CHECKSUM_PARTIAL && + skb->ip_summed != CHECKSUM_NONE; + + return skb->ip_summed == CHECKSUM_NONE; } /**