Commit 72a31d85 authored by Bert Kenward's avatar Bert Kenward Committed by David S. Miller

sfc: check MTU against minimum threshold

Reported-by: default avatarMa Yuying <yuma@redhat.com>
Suggested-by: default avatarJarod Wilson <jarod@redhat.com>
Signed-off-by: default avatarBert Kenward <bkenward@solarflare.com>
Reviewed-by: default avatarJarod Wilson <jarod@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f1e4ba5b
...@@ -2263,8 +2263,18 @@ static int efx_change_mtu(struct net_device *net_dev, int new_mtu) ...@@ -2263,8 +2263,18 @@ static int efx_change_mtu(struct net_device *net_dev, int new_mtu)
rc = efx_check_disabled(efx); rc = efx_check_disabled(efx);
if (rc) if (rc)
return rc; return rc;
if (new_mtu > EFX_MAX_MTU) if (new_mtu > EFX_MAX_MTU) {
netif_err(efx, drv, efx->net_dev,
"Requested MTU of %d too big (max: %d)\n",
new_mtu, EFX_MAX_MTU);
return -EINVAL; return -EINVAL;
}
if (new_mtu < EFX_MIN_MTU) {
netif_err(efx, drv, efx->net_dev,
"Requested MTU of %d too small (min: %d)\n",
new_mtu, EFX_MIN_MTU);
return -EINVAL;
}
netif_dbg(efx, drv, efx->net_dev, "changing MTU to %d\n", new_mtu); netif_dbg(efx, drv, efx->net_dev, "changing MTU to %d\n", new_mtu);
......
...@@ -76,6 +76,9 @@ ...@@ -76,6 +76,9 @@
/* Maximum possible MTU the driver supports */ /* Maximum possible MTU the driver supports */
#define EFX_MAX_MTU (9 * 1024) #define EFX_MAX_MTU (9 * 1024)
/* Minimum MTU, from RFC791 (IP) */
#define EFX_MIN_MTU 68
/* Size of an RX scatter buffer. Small enough to pack 2 into a 4K page, /* Size of an RX scatter buffer. Small enough to pack 2 into a 4K page,
* and should be a multiple of the cache line size. * and should be a multiple of the cache line size.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment