diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_main.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index fce86e8ff834..f7b1acee2b71 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -7336,8 +7336,8 @@ clear_recovery:   */  static int ice_max_xdp_frame_size(struct ice_vsi *vsi)  { -	if (PAGE_SIZE >= 8192 || test_bit(ICE_FLAG_LEGACY_RX, vsi->back->flags)) -		return ICE_RXBUF_2048 - XDP_PACKET_HEADROOM; +	if (test_bit(ICE_FLAG_LEGACY_RX, vsi->back->flags)) +		return ICE_RXBUF_1664;  	else  		return ICE_RXBUF_3072;  } @@ -7370,6 +7370,12 @@ static int ice_change_mtu(struct net_device *netdev, int new_mtu)  				   frame_size - ICE_ETH_PKT_HDR_PAD);  			return -EINVAL;  		} +	} else if (test_bit(ICE_FLAG_LEGACY_RX, pf->flags)) { +		if (new_mtu + ICE_ETH_PKT_HDR_PAD > ICE_MAX_FRAME_LEGACY_RX) { +			netdev_err(netdev, "Too big MTU for legacy-rx; Max is %d\n", +				   ICE_MAX_FRAME_LEGACY_RX - ICE_ETH_PKT_HDR_PAD); +			return -EINVAL; +		}  	}  	/* if a reset is in progress, wait for some time for it to complete */  | 
