RE: [PATCH net-next 5/6] net: use core MTU range checking in virt drivers
From: Haiyang Zhang via Virtualization <hidden>
Date: 2016-10-19 15:42:38
Also in:
lkml, virtualization
quoted hunk ↗ jump to hunk
-----Original Message----- From: Jarod Wilson [mailto:jarod@redhat.com] Sent: Tuesday, October 18, 2016 10:34 PM To: linux-kernel@vger.kernel.org Cc: Jarod Wilson <redacted>; netdev@vger.kernel.org; virtualization@lists.linux-foundation.org; KY Srinivasan [off-list ref]; Haiyang Zhang [off-list ref]; Michael S. Tsirkin [off-list ref]; Shrikrishna Khare [off-list ref]; VMware, Inc. [off-list ref] Subject: [PATCH net-next 5/6] net: use core MTU range checking in virt drivers hyperv_net: - set min/max_mtu virtio_net: - set min/max_mtu - remove virtnet_change_mtu vmxnet3: - set min/max_mtu CC: netdev@vger.kernel.org CC: virtualization@lists.linux-foundation.org CC: "K. Y. Srinivasan" <kys@microsoft.com> CC: Haiyang Zhang <haiyangz@microsoft.com> CC: "Michael S. Tsirkin" <mst@redhat.com> CC: Shrikrishna Khare <redacted> CC: "VMware, Inc." <redacted> Signed-off-by: Jarod Wilson <redacted> --- drivers/net/hyperv/hyperv_net.h | 4 ++-- drivers/net/hyperv/netvsc_drv.c | 14 +++++++------- drivers/net/virtio_net.c | 23 ++++++++++------------- drivers/net/vmxnet3/vmxnet3_drv.c | 7 ++++--- 4 files changed, 23 insertions(+), 25 deletions(-)diff --git a/drivers/net/hyperv/hyperv_net.hb/drivers/net/hyperv/hyperv_net.h index f4fbcb5..3958ada 100644--- a/drivers/net/hyperv/hyperv_net.h +++ b/drivers/net/hyperv/hyperv_net.h@@ -606,8 +606,8 @@ struct nvsp_message { } __packed; -#define NETVSC_MTU 65536 -#define NETVSC_MTU_MIN 68 +#define NETVSC_MTU 65535
Why change it to 65535? For Hyperv host, this should be 65536.
quoted hunk ↗ jump to hunk
@@ -1343,6 +1336,13 @@ static int netvsc_probe(struct hv_device *dev, netif_carrier_off(net); + /* MTU range: 68 - 1500 or 65521 */ + net->min_mtu = NETVSC_MTU_MIN; + if (nvdev->nvsp_version >= NVSP_PROTOCOL_VERSION_2) + net->max_mtu = NETVSC_MTU - ETH_HLEN; + else + net->max_mtu = ETH_DATA_LEN; + netvsc_init_settings(net); net_device_ctx = netdev_priv(net);
nvdev->nvsp_version is not set until after rndis_filter_device_add() is successfully completed. You need to move this part to the place just before this line: ret = register_netdev(net); Thanks, - Haiyang