OSDN Git Service

net: bgmac: Remove short packet padding for DSA
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 4 Jan 2018 06:13:02 +0000 (22:13 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Jan 2018 16:21:31 +0000 (11:21 -0500)
DSA now correctly pads short packets within net/dsa/tag_brcm.c such that
this it is no longer necessary to do this within bgmac.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bgmac.c

index 1d96cd5..8eef9fb 100644 (file)
@@ -128,8 +128,6 @@ 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)
@@ -142,18 +140,6 @@ 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 (netdev_uses_dsa(net_dev)) {
-               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;
@@ -240,7 +226,6 @@ err_dma_head:
 
 err_drop:
        dev_kfree_skb(skb);
-err_stats:
        net_dev->stats.tx_dropped++;
        net_dev->stats.tx_errors++;
        return NETDEV_TX_OK;