From patchwork Wed Jan 18 20:12:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 716822 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 3v3dcN3htZz9t23 for ; Thu, 19 Jan 2017 07:19:48 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="KiUIr8zm"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753227AbdARUTq (ORCPT ); Wed, 18 Jan 2017 15:19:46 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:35361 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752749AbdARUTp (ORCPT ); Wed, 18 Jan 2017 15:19:45 -0500 Received: by mail-pg0-f66.google.com with SMTP id 204so2167303pge.2 for ; Wed, 18 Jan 2017 12:19:45 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=8o6mZJUL8LN5AWUEjy/fLxNDcbP6Gifq3hvj3UzGaEM=; b=KiUIr8zmi12f093XBPHYgCw9zuL08hazlEVBqKyoR290uJtA1JbwQzVz/zVIqEtQsp WNyTLVMNqTIppiVj7EIliFOypxcAjoTu09p5QLdm9AwhOlIuv0xq4dQO6IgSuhrFU8T7 T+qkcMfF/acUmpqfLXlFc3V2W5CHcQO8i2aNmOgTbbJt6xH6lbXTRzrZkvpLOqEvmzyk GsCyFUFHRF9p0MoCShixSgWIZrqrfJ0ktnDwex9nCvjlsDbAzhf56GW1/LT5yVU6YGPj lMN416q4mto3ozbzINLflR2F8sNH4fJHZvcNG6/4OariuRP9jevSXclqjIbfkdD8Qs1N zACw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=8o6mZJUL8LN5AWUEjy/fLxNDcbP6Gifq3hvj3UzGaEM=; b=L/mqqVdWfwqeCLRelVGH78HizLddzctkB/cMl2P8LBdK5vRTY39dpJ3S9eyWggqan4 lAIHj3eFTWTupcHMA7Qz2Kvv1RjA4nAXircCGh6PHcJNnLQgmYq//7uKWvk5reQPevm4 gJnzmkj29PTnYSOTKMc8FyZRnnHmY024ioBgyArOM6KlfW1F5GXO+PDA35aafXS4iKwP 7ekFBojgKZZFHkiz0aaiTHj3/stZoo7OUc6gxVTVF7fJenJZXw1BLERehEhKv1H2CmmQ xPdDVLd6MbCKXels0rL+QIB1v8TEKRdUOkSeA+ml7Bs3Gjl7utG3MIlRM2XiZAd/Dz2W +/BA== X-Gm-Message-State: AIkVDXL+2KCLsAQcSS1x0BZhOtp+YNSMOtCaQCZNtrze7MxVJStM4jw7g6GrRjQWNC6KFQ== X-Received: by 10.84.211.7 with SMTP id b7mr7600197pli.82.1484770338614; Wed, 18 Jan 2017 12:12:18 -0800 (PST) Received: from ?IPv6:2620:0:1000:1704:8d50:62e8:aa17:fb07? ([2620:0:1000:1704:8d50:62e8:aa17:fb07]) by smtp.googlemail.com with ESMTPSA id e127sm2626069pfh.89.2017.01.18.12.12.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Jan 2017 12:12:18 -0800 (PST) Message-ID: <1484770337.13165.120.camel@edumazet-glaptop3.roam.corp.google.com> Subject: [PATCH net] net: fix harmonize_features() vs NETIF_F_HIGHDMA From: Eric Dumazet To: Pravin Shelar , David Miller Cc: "Ashizuka, Yuusuke" , Andy Duan , "netdev@vger.kernel.org" , Pravin B Shelar Date: Wed, 18 Jan 2017 12:12:17 -0800 In-Reply-To: <1484769077.13165.111.camel@edumazet-glaptop3.roam.corp.google.com> References: <20170117074820.5106-1-ashiduka@jp.fujitsu.com> <337A096076BEF646A1F21E1AD855580E3AC8F71A@g01jpexmbkw23> <1484713283.13165.89.camel@edumazet-glaptop3.roam.corp.google.com> <1484714132.13165.92.camel@edumazet-glaptop3.roam.corp.google.com> <1484769077.13165.111.camel@edumazet-glaptop3.roam.corp.google.com> 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 Ashizuka reported a highmem oddity and sent a patch for freescale fec driver. But the problem root cause is that core networking stack must ensure no skb with highmem fragment is ever sent through a device that does not assert NETIF_F_HIGHDMA in its features. We need to call illegal_highdma() from harmonize_features() regardless of CSUM checks. Fixes: ec5f06156423 ("net: Kill link between CSUM and SG features.") Signed-off-by: Eric Dumazet Cc: Pravin Shelar Reported-by: "Ashizuka, Yuusuke" --- net/core/dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 07b307b0b414730688b64fdb2295b0fa1b721e51..7f218e095361520d11c243d650e053321ea7274f 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2795,9 +2795,9 @@ static netdev_features_t harmonize_features(struct sk_buff *skb, if (skb->ip_summed != CHECKSUM_NONE && !can_checksum_protocol(features, type)) { features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK); - } else if (illegal_highdma(skb->dev, skb)) { - features &= ~NETIF_F_SG; } + if (illegal_highdma(skb->dev, skb)) + features &= ~NETIF_F_SG; return features; }