igb: Correcting and improving small packet check and padding
Current implementation mess up the tail pointer. This patch sets skb->tail correctly. Also, the small packet check and padding is optimized by using unlikely and calling skb_pad directly. Signed-off-by: Tushar Dave <tushar.n.dave@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
374c65d666
commit
ea5ceeabf5
|
@ -4467,10 +4467,11 @@ static netdev_tx_t igb_xmit_frame(struct sk_buff *skb,
|
|||
* The minimum packet size with TCTL.PSP set is 17 so pad the skb
|
||||
* in order to meet this minimum size requirement.
|
||||
*/
|
||||
if (skb->len < 17) {
|
||||
if (skb_padto(skb, 17))
|
||||
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);
|
||||
}
|
||||
|
||||
return igb_xmit_frame_ring(skb, igb_tx_queue_mapping(adapter, skb));
|
||||
|
|
Loading…
Reference in New Issue