Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e97c170 authored by Tushar Dave's avatar Tushar Dave Committed by Jeff Kirsher
Browse files

e1000e: Minimum packet size must be 17 bytes



This is a HW requirement. Although a buffer as short as 1 byte is allowed,
the total length of packet before, padding and CRC insertion, must be at
least 17 bytes.  So pad all small packets manually up to 17 bytes before
delivering them to HW.

Signed-off-by: default avatarTushar Dave <tushar.n.dave@intel.com>
Tested-by: default avatarJeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 598e74f3
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -5067,6 +5067,17 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
		return NETDEV_TX_OK;
	}

	/*
	 * The minimum packet size with TCTL.PSP set is 17 bytes so
	 * pad skb in order to meet this minimum size requirement
	 */
	if (unlikely(skb->len < 17)) {
		if (skb_pad(skb, 17 - skb->len))
			return NETDEV_TX_OK;
		skb->len = 17;
		skb_set_tail_pointer(skb, 17);
	}

	mss = skb_shinfo(skb)->gso_size;
	if (mss) {
		u8 hdr_len;