octeon_ep: add padding for small packets
authorShinas Rasheed <srasheed@marvell.com>
Tue, 14 Nov 2023 13:45:32 +0000 (05:45 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Nov 2023 21:55:05 +0000 (21:55 +0000)
Pad small packets to ETH_ZLEN before transmit, as hardware
cannot pad and requires software padding to ensure
minimum ethernet frame length.

Signed-off-by: Shinas Rasheed <srasheed@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeon_ep/octep_main.c

index 552970c7dec09715ece049a737ee32e2712e6b41..2c86b911a380fbd6f6bcc00486c082abd14b9d66 100644 (file)
@@ -820,6 +820,9 @@ static netdev_tx_t octep_start_xmit(struct sk_buff *skb,
        u16 nr_frags, si;
        u16 q_no, wi;
 
+       if (skb_put_padto(skb, ETH_ZLEN))
+               return NETDEV_TX_OK;
+
        q_no = skb_get_queue_mapping(skb);
        if (q_no >= oct->num_iqs) {
                netdev_err(netdev, "Invalid Tx skb->queue_mapping=%d\n", q_no);