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: sta...@dpdk.org Signed-off-by: Yunjian Wang <wangyunj...@huawei.com> --- v2: * No need to fail when error is -ENOTSUP. --- drivers/net/virtio/virtio_user/vhost_kernel_tap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c index 76bf75423..2a0c2106d 100644 --- a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c +++ b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c @@ -66,6 +66,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 @@ -131,7 +132,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; -- 2.19.1