[dpdk-dev] [PATCH 1/2] vhost: fix Virtio-net header len with packed ring
Xia, Chenbo
chenbo.xia at intel.com
Fri Oct 9 08:33:11 CEST 2020
> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin at redhat.com>
> Sent: Thursday, October 1, 2020 6:12 PM
> To: dev at dpdk.org; Xia, Chenbo <chenbo.xia at intel.com>; Liu, Yong
> <yong.liu at intel.com>
> Cc: Maxime Coquelin <maxime.coquelin at redhat.com>; stable at dpdk.org
> Subject: [PATCH 1/2] vhost: fix Virtio-net header len with packed ring
>
> In case packed ring layout has been negotiated, but neither
> Version 1 nor mergeable buffers, the Virtio-net header len
> is assigned to the legacy devices value, which is wrong.
>
> This patch fixes this with using the proper len as devices
> using packed ring are not legacy devices.
>
> Fixes: a922401f35cc ("vhost: add Rx support for packed ring")
> Fixes: ae999ce49dcb ("vhost: add Tx support for packed ring")
> Cc: stable at dpdk.org
>
> Reported-by: Marvin Liu <yong.liu at intel.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> ---
> lib/librte_vhost/vhost_user.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
> index 4deceb3e00..5d1fb9e863 100644
> --- a/lib/librte_vhost/vhost_user.c
> +++ b/lib/librte_vhost/vhost_user.c
> @@ -341,7 +341,9 @@ vhost_user_set_features(struct virtio_net **pdev,
> struct VhostUserMsg *msg,
>
> dev->features = features;
> if (dev->features &
> - ((1 << VIRTIO_NET_F_MRG_RXBUF) | (1ULL << VIRTIO_F_VERSION_1)))
> {
> + ((1ULL << VIRTIO_NET_F_MRG_RXBUF) |
> + (1ULL << VIRTIO_F_VERSION_1) |
> + (1ULL << VIRTIO_F_RING_PACKED))) {
> dev->vhost_hlen = sizeof(struct virtio_net_hdr_mrg_rxbuf);
> } else {
> dev->vhost_hlen = sizeof(struct virtio_net_hdr);
> --
> 2.26.2
Reviewed-by: Chenbo Xia <chenbo.xia at intel.com>
More information about the dev
mailing list