mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ixgbe: Make certain that all frames fit minimum size requirements
This change makes certain that any packet we attempt to transmit will meet minimum size requirements for the hardware. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Stephen Ko <stephen.s.ko@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
		
							parent
							
								
									655309e944
								
							
						
					
					
						commit
						a50c29dd09
					
				
					 1 changed files with 17 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -7162,11 +7162,27 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,
 | 
			
		|||
	return NETDEV_TX_OK;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static netdev_tx_t ixgbe_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
 | 
			
		||||
static netdev_tx_t ixgbe_xmit_frame(struct sk_buff *skb,
 | 
			
		||||
				    struct net_device *netdev)
 | 
			
		||||
{
 | 
			
		||||
	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 | 
			
		||||
	struct ixgbe_ring *tx_ring;
 | 
			
		||||
 | 
			
		||||
	if (skb->len <= 0) {
 | 
			
		||||
		dev_kfree_skb_any(skb);
 | 
			
		||||
		return NETDEV_TX_OK;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * The minimum packet size for olinfo paylen is 17 so pad the skb
 | 
			
		||||
	 * in order to meet this minimum size requirement.
 | 
			
		||||
	 */
 | 
			
		||||
	if (skb->len < 17) {
 | 
			
		||||
		if (skb_padto(skb, 17))
 | 
			
		||||
			return NETDEV_TX_OK;
 | 
			
		||||
		skb->len = 17;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tx_ring = adapter->tx_ring[skb->queue_mapping];
 | 
			
		||||
	return ixgbe_xmit_frame_ring(skb, adapter, tx_ring);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue