From patchwork Thu Nov 9 22:26:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 836534 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MX9iq4Tm"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yXySB6wrtz9t2r for ; Fri, 10 Nov 2017 09:26:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754122AbdKIW0P (ORCPT ); Thu, 9 Nov 2017 17:26:15 -0500 Received: from mail-qk0-f195.google.com ([209.85.220.195]:52949 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753216AbdKIW0N (ORCPT ); Thu, 9 Nov 2017 17:26:13 -0500 Received: by mail-qk0-f195.google.com with SMTP id a194so7570987qkc.9 for ; Thu, 09 Nov 2017 14:26:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=irTc2bv6dO/vU4v+gTOLhjV3rk6fflym6E9UdWtqIhk=; b=MX9iq4TmpkIsydJ13Q70l12phG0CW/b5puvl+qTCduhEeTo3SIusPSwsyXQZ6PnYUZ 8nNKLqA8VP83ZvWv8kiqLEd/QbgGgqUfCeRva5S4FQiPTdiUvVa7ZIWvxzDxAwGqIaNT 7nWBYVgVIOZCj6ar7DOIgTwl+26tCE/zKL4O3xU1A6auPinMgJjFAGcDR7ZDH3Nu0Mjh dJxh6AGxAc2CwI8pSEUmLJkJBjMYPjpk4fm7IvpEKb7+I0iHJqWChYHaJ2RQYZpnTZyY NC/YsK+fgDsgNstUmWhlqJ0zdNnqG4WFyxwOx8Aj/GuEci1EC7DIUqEdP/U3Tp913aml LgPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=irTc2bv6dO/vU4v+gTOLhjV3rk6fflym6E9UdWtqIhk=; b=jNDmQ7TRULh8A9K2kxhXGjK6KA5XFrXXi4tAEEak/IyNmQZoe6xebG4vdwVR4+V6+A tzmK20esxFOXGT73JTn4DuQKDSeWnImDV7tYGsi3msYLfT44FXCAGZw5f0g/8dW27LrQ Ao9HTiN69ITT6jHjUv2XBtBSGrUK8ykqdRC9y+HKBMnvfeY+MsOTIolbIVG9SW+hkL9C vPlKFFetT7rpHlzCX669LAL9Qpnbovbx/M92wmipMUcPVFQA/Vh8y0ECUnr8VpZFXXmb 7BTPQi+zeNg3wUgvyA3L1zQ3I06RqBjagplhhayDheGMXSDcn7kbog4P7eoDypPK6YA4 CW1g== X-Gm-Message-State: AJaThX6hq6nnwK23oJRBPxzFjbwd92HyMZ8d1SbwnSH+ykmX0XTtvrnT ECHC1TKz/nLQPWYhlaHSsB5WDBaP X-Google-Smtp-Source: ABhQp+TijczrExIKubt2WxJOiFaFCZTP5UnbGAN7Ix0gLJNjbNf0i2gpAcJkRH1rolgzXUMmGBD3OA== X-Received: by 10.55.182.129 with SMTP id g123mr3303180qkf.163.1510266372178; Thu, 09 Nov 2017 14:26:12 -0800 (PST) Received: from fainelli-desktop.broadcom.com ([192.19.255.250]) by smtp.gmail.com with ESMTPSA id m39sm5384924qtk.30.2017.11.09.14.26.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Nov 2017 14:26:11 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: davem@davemloft.net, andrew@lunn.ch, vivien.didelot@savoirfairelinux.com, Florian Fainelli Subject: [PATCH net-next 1/3] net: bgmac: Pad packets to a minimum size Date: Thu, 9 Nov 2017 14:26:04 -0800 Message-Id: <20171109222606.2987-2-f.fainelli@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20171109222606.2987-1-f.fainelli@gmail.com> References: <20171109222606.2987-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for enabling Broadcom tags with b53, pad packets to a minimum size of 64 bytes (sans FCS) in order for the Broadcom switch to accept ingressing frames. Without this, we would typically be able to DHCP, but not resolve with ARP because packets are too small and get rejected by the switch. Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/bgmac.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index 48d672b204a4..5130fc96940d 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -127,6 +127,8 @@ bgmac_dma_tx_add_buf(struct bgmac *bgmac, struct bgmac_dma_ring *ring, dma_desc->ctl1 = cpu_to_le32(ctl1); } +#define ENET_BRCM_TAG_LEN 4 + static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac, struct bgmac_dma_ring *ring, struct sk_buff *skb) @@ -139,6 +141,16 @@ static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac, u32 flags; int i; + /* The Ethernet switch we are interfaced with needs packets to be at + * least 64 bytes (including FCS) otherwise they will be discarded when + * they enter the switch port logic. When Broadcom tags are enabled, we + * need to make sure that packets are at least 68 bytes + * (including FCS and tag) because the length verification is done after + * the Broadcom tag is stripped off the ingress packet. + */ + if (skb_put_padto(skb, ETH_ZLEN + ENET_BRCM_TAG_LEN)) + goto err_stats; + if (skb->len > BGMAC_DESC_CTL1_LEN) { netdev_err(bgmac->net_dev, "Too long skb (%d)\n", skb->len); goto err_drop; @@ -225,6 +237,7 @@ static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac, err_drop: dev_kfree_skb(skb); +err_stats: net_dev->stats.tx_dropped++; net_dev->stats.tx_errors++; return NETDEV_TX_OK;