summaryrefslogtreecommitdiffstats
path: root/drivers/net/hyperv/netvsc_drv.c
diff options
context:
space:
mode:
authorHaiyang Zhang2014-11-12 23:07:44 +0100
committerDavid S. Miller2014-11-12 22:21:36 +0100
commit4d3c9d37f77566b04216dfc9a6513082002d7a1f (patch)
treec23efd4874c81912f2ad9a176ba57d74c9ec637a /drivers/net/hyperv/netvsc_drv.c
parentamd-xgbe: Fix sparse endian warnings (diff)
downloadkernel-qcow2-linux-4d3c9d37f77566b04216dfc9a6513082002d7a1f.tar.gz
kernel-qcow2-linux-4d3c9d37f77566b04216dfc9a6513082002d7a1f.tar.xz
kernel-qcow2-linux-4d3c9d37f77566b04216dfc9a6513082002d7a1f.zip
hyperv: Add processing of MTU reduced by the host
If the host uses packet encapsulation feature, the MTU may be reduced by the host due to headroom reservation for encapsulation. This patch handles this new MTU value. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/hyperv/netvsc_drv.c')
-rw-r--r--drivers/net/hyperv/netvsc_drv.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index 3295e4ee9dbb..15d82eda0baf 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -699,9 +699,10 @@ static int netvsc_change_mtu(struct net_device *ndev, int mtu)
return -ENODEV;
if (nvdev->nvsp_version >= NVSP_PROTOCOL_VERSION_2)
- limit = NETVSC_MTU;
+ limit = NETVSC_MTU - ETH_HLEN;
- if (mtu < 68 || mtu > limit)
+ /* Hyper-V hosts don't support MTU < ETH_DATA_LEN (1500) */
+ if (mtu < ETH_DATA_LEN || mtu > limit)
return -EINVAL;
nvdev->start_remove = true;