diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 0f9f022260d7..89b467006291 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -2170,7 +2170,7 @@ static struct sk_buff *ixgbe_build_skb(struct ixgbe_ring *rx_ring,  	net_prefetch(xdp->data_meta);  	/* build an skb to around the page buffer */ -	skb = build_skb(xdp->data_hard_start, truesize); +	skb = napi_build_skb(xdp->data_hard_start, truesize);  	if (unlikely(!skb))  		return NULL; @@ -2235,7 +2235,7 @@ static struct sk_buff *ixgbe_run_xdp(struct ixgbe_adapter *adapter,  		result = IXGBE_XDP_REDIR;  		break;  	default: -		bpf_warn_invalid_xdp_action(act); +		bpf_warn_invalid_xdp_action(rx_ring->netdev, xdp_prog, act);  		fallthrough;  	case XDP_ABORTED:  out_failure: @@ -3247,8 +3247,8 @@ static int ixgbe_request_msix_irqs(struct ixgbe_adapter *adapter)  		/* If Flow Director is enabled, set interrupt affinity */  		if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) {  			/* assign the mask for this irq */ -			irq_set_affinity_hint(entry->vector, -					      &q_vector->affinity_mask); +			irq_update_affinity_hint(entry->vector, +						 &q_vector->affinity_mask);  		}  	} @@ -3264,8 +3264,8 @@ static int ixgbe_request_msix_irqs(struct ixgbe_adapter *adapter)  free_queue_irqs:  	while (vector) {  		vector--; -		irq_set_affinity_hint(adapter->msix_entries[vector].vector, -				      NULL); +		irq_update_affinity_hint(adapter->msix_entries[vector].vector, +					 NULL);  		free_irq(adapter->msix_entries[vector].vector,  			 adapter->q_vector[vector]);  	} @@ -3398,7 +3398,7 @@ static void ixgbe_free_irq(struct ixgbe_adapter *adapter)  			continue;  		/* clear the affinity_mask in the IRQ descriptor */ -		irq_set_affinity_hint(entry->vector, NULL); +		irq_update_affinity_hint(entry->vector, NULL);  		free_irq(entry->vector, q_vector);  	} @@ -5531,6 +5531,10 @@ static int ixgbe_non_sfp_link_config(struct ixgbe_hw *hw)  	if (!speed && hw->mac.ops.get_link_capabilities) {  		ret = hw->mac.ops.get_link_capabilities(hw, &speed,  							&autoneg); +		/* remove NBASE-T speeds from default autonegotiation +		 * to accommodate broken network switches in the field +		 * which cannot cope with advertised NBASE-T speeds +		 */  		speed &= ~(IXGBE_LINK_SPEED_5GB_FULL |  			   IXGBE_LINK_SPEED_2_5GB_FULL);  	} |