|
@@ -704,7 +704,7 @@ static int alx_init_sw(struct alx_priv *alx)
|
|
|
|
|
|
hw->smb_timer = 400;
|
|
|
hw->mtu = alx->dev->mtu;
|
|
|
- alx->rxbuf_size = ALIGN(ALX_RAW_MTU(hw->mtu), 8);
|
|
|
+ alx->rxbuf_size = ALX_MAX_FRAME_LEN(hw->mtu);
|
|
|
alx->tx_ringsz = 256;
|
|
|
alx->rx_ringsz = 512;
|
|
|
hw->imt = 200;
|
|
@@ -805,7 +805,7 @@ static void alx_reinit(struct alx_priv *alx)
|
|
|
static int alx_change_mtu(struct net_device *netdev, int mtu)
|
|
|
{
|
|
|
struct alx_priv *alx = netdev_priv(netdev);
|
|
|
- int max_frame = mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
|
|
|
+ int max_frame = ALX_MAX_FRAME_LEN(mtu);
|
|
|
|
|
|
if ((max_frame < ALX_MIN_FRAME_SIZE) ||
|
|
|
(max_frame > ALX_MAX_FRAME_SIZE))
|
|
@@ -816,8 +816,7 @@ static int alx_change_mtu(struct net_device *netdev, int mtu)
|
|
|
|
|
|
netdev->mtu = mtu;
|
|
|
alx->hw.mtu = mtu;
|
|
|
- alx->rxbuf_size = mtu > ALX_DEF_RXBUF_SIZE ?
|
|
|
- ALIGN(max_frame, 8) : ALX_DEF_RXBUF_SIZE;
|
|
|
+ alx->rxbuf_size = max(max_frame, ALX_DEF_RXBUF_SIZE);
|
|
|
netdev_update_features(netdev);
|
|
|
if (netif_running(netdev))
|
|
|
alx_reinit(alx);
|