ethernet/atheros: use core min/max MTU checking
atl2: min_mtu 40, max_mtu 1504 - Remove a few redundant defines that already have equivalents in if_ether.h. atl1: min_mtu 42, max_mtu 10218 atl1e: min_mtu 42, max_mtu 8170 atl1c: min_mtu 42, max_mtu 6122/1500 - GbE hardware gets a max_mtu of 6122, slower hardware gets 1500. alx: min_mtu 34, max_mtu 9256 - Not so sure that minimum MTU number is really what was intended, but that's what the math actually makes it out to be, due to max_frame manipulations and comparison in alx_change_mtu, rather than just comparing new_mtu. (I think 68 was the intended min_mtu value). CC: netdev@vger.kernel.org CC: Jay Cliburn <jcliburn@gmail.com> CC: Chris Snook <chris.snook@gmail.com> Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
60d2d8dd9e
commit
67bef94280
@@ -892,6 +892,9 @@ static int alx_init_sw(struct alx_priv *alx)
|
||||
hw->smb_timer = 400;
|
||||
hw->mtu = alx->dev->mtu;
|
||||
alx->rxbuf_size = ALX_MAX_FRAME_LEN(hw->mtu);
|
||||
/* MTU range: 34 - 9256 */
|
||||
alx->dev->min_mtu = 34;
|
||||
alx->dev->max_mtu = ALX_MAX_FRAME_LEN(ALX_MAX_FRAME_SIZE);
|
||||
alx->tx_ringsz = 256;
|
||||
alx->rx_ringsz = 512;
|
||||
hw->imt = 200;
|
||||
@@ -994,13 +997,6 @@ static int alx_change_mtu(struct net_device *netdev, int mtu)
|
||||
struct alx_priv *alx = netdev_priv(netdev);
|
||||
int max_frame = ALX_MAX_FRAME_LEN(mtu);
|
||||
|
||||
if ((max_frame < ALX_MIN_FRAME_SIZE) ||
|
||||
(max_frame > ALX_MAX_FRAME_SIZE))
|
||||
return -EINVAL;
|
||||
|
||||
if (netdev->mtu == mtu)
|
||||
return 0;
|
||||
|
||||
netdev->mtu = mtu;
|
||||
alx->hw.mtu = mtu;
|
||||
alx->rxbuf_size = max(max_frame, ALX_DEF_RXBUF_SIZE);
|
||||
|
Reference in New Issue
Block a user