From: Yunjian Wang Date: Mon, 13 Jan 2020 07:40:31 +0000 (+0800) Subject: net/virtio-user: check tap offload setting failure X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=1ad2f882b34a644d4dc91b366f38a73a1b4f4cf5;p=dpdk.git net/virtio-user: check tap offload setting failure The function vhost_kernel_tap_set_offload() could return errors, the return value need to be checked. And there is no need to fail when error is -ENOTSUP. Fixes: 1db4d2330bc8 ("net/virtio-user: check negotiated features before set") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang Reviewed-by: Tiwei Bie --- diff --git a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c index 2fbfecba12..2fa4f0d661 100644 --- a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c +++ b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c @@ -74,6 +74,7 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq, int sndbuf = INT_MAX; struct ifreq ifr; int tapfd; + int ret; /* TODO: * 1. verify we can get/set vnet_hdr_len, tap_probe_vnet_hdr_len @@ -139,7 +140,9 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq, goto error; } - vhost_kernel_tap_set_offload(tapfd, features); + ret = vhost_kernel_tap_set_offload(tapfd, features); + if (ret < 0 && ret != -ENOTSUP) + goto error; memset(&ifr, 0, sizeof(ifr)); ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;