diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igb')
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 19 | 
1 files changed, 10 insertions, 9 deletions
| diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 68be2976f539..c5f04c40284b 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -4819,8 +4819,11 @@ static void igb_clean_tx_ring(struct igb_ring *tx_ring)  	while (i != tx_ring->next_to_use) {  		union e1000_adv_tx_desc *eop_desc, *tx_desc; -		/* Free all the Tx ring sk_buffs */ -		dev_kfree_skb_any(tx_buffer->skb); +		/* Free all the Tx ring sk_buffs or xdp frames */ +		if (tx_buffer->type == IGB_TYPE_SKB) +			dev_kfree_skb_any(tx_buffer->skb); +		else +			xdp_return_frame(tx_buffer->xdpf);  		/* unmap skb header data */  		dma_unmap_single(tx_ring->dev, @@ -9898,11 +9901,10 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)  	struct e1000_hw *hw = &adapter->hw;  	u32 dmac_thr;  	u16 hwm; +	u32 reg;  	if (hw->mac.type > e1000_82580) {  		if (adapter->flags & IGB_FLAG_DMAC) { -			u32 reg; -  			/* force threshold to 0. */  			wr32(E1000_DMCTXTH, 0); @@ -9935,7 +9937,6 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)  			/* Disable BMC-to-OS Watchdog Enable */  			if (hw->mac.type != e1000_i354)  				reg &= ~E1000_DMACR_DC_BMC2OSW_EN; -  			wr32(E1000_DMACR, reg);  			/* no lower threshold to disable @@ -9952,12 +9953,12 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)  			 */  			wr32(E1000_DMCTXTH, (IGB_MIN_TXPBSIZE -  			     (IGB_TX_BUF_4096 + adapter->max_frame_size)) >> 6); +		} -			/* make low power state decision controlled -			 * by DMA coal -			 */ +		if (hw->mac.type >= e1000_i210 || +		    (adapter->flags & IGB_FLAG_DMAC)) {  			reg = rd32(E1000_PCIEMISC); -			reg &= ~E1000_PCIEMISC_LX_DECISION; +			reg |= E1000_PCIEMISC_LX_DECISION;  			wr32(E1000_PCIEMISC, reg);  		} /* endif adapter->dmac is not disabled */  	} else if (hw->mac.type == e1000_82580) { |