[dpdk-dev] net/virtio: init MTU in case no control channel

Message ID 1515148086-38104-1-git-send-email-wangzhike@jd.com (mailing list archive)
State Accepted, archived
Delegated to: Yuanhan Liu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

王志克 Jan. 5, 2018, 10:28 a.m. UTC
  From: zhike wang <wangzhike@jd.com>

The max_mtu is kept as zero in case no CRTL channel, which leads
to failure when calling virtio_mtu_set().

Signed-off-by: Zhike Wang <wangzhike@jd.com>
---
 drivers/net/virtio/virtio_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Yuanhan Liu Jan. 9, 2018, 1:15 p.m. UTC | #1
On Fri, Jan 05, 2018 at 02:28:06AM -0800, Zhike Wang wrote:
> From: zhike wang <wangzhike@jd.com>
> 
> The max_mtu is kept as zero in case no CRTL channel, which leads
> to failure when calling virtio_mtu_set().
> 
> Signed-off-by: Zhike Wang <wangzhike@jd.com>

Applied to dpdk-next-virtio.

Thanks.

	--yliu
> ---
>  drivers/net/virtio/virtio_ethdev.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 21f2131..b7b3364 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1479,6 +1479,8 @@ static int virtio_dev_xstats_get_names(struct rte_eth_dev *dev,
>  	} else {
>  		PMD_INIT_LOG(DEBUG, "config->max_virtqueue_pairs=1");
>  		hw->max_queue_pairs = 1;
> +		hw->max_mtu = VIRTIO_MAX_RX_PKTLEN - ETHER_HDR_LEN -
> +			VLAN_TAG_LEN - hw->vtnet_hdr_size;
>  	}
>  
>  	ret = virtio_alloc_queues(eth_dev);
> -- 
> 1.8.3.1
  

Patch

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 21f2131..b7b3364 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1479,6 +1479,8 @@  static int virtio_dev_xstats_get_names(struct rte_eth_dev *dev,
 	} else {
 		PMD_INIT_LOG(DEBUG, "config->max_virtqueue_pairs=1");
 		hw->max_queue_pairs = 1;
+		hw->max_mtu = VIRTIO_MAX_RX_PKTLEN - ETHER_HDR_LEN -
+			VLAN_TAG_LEN - hw->vtnet_hdr_size;
 	}
 
 	ret = virtio_alloc_queues(eth_dev);