git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/virtio: adapt virtio-user status size
[dpdk.git]
/
drivers
/
net
/
virtio
/
virtio_user
/
vhost_kernel_tap.c
diff --git
a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
index
2fbfecb
..
acddefa
100644
(file)
--- 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 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
/* TODO:
* 1. verify we can get/set vnet_hdr_len, tap_probe_vnet_hdr_len
@@
-127,7
+128,10
@@
vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
goto error;
}
goto error;
}
- fcntl(tapfd, F_SETFL, O_NONBLOCK);
+ if (fcntl(tapfd, F_SETFL, O_NONBLOCK) < 0) {
+ PMD_DRV_LOG(ERR, "fcntl tapfd failed: %s", strerror(errno));
+ goto error;
+ }
if (ioctl(tapfd, TUNSETVNETHDRSZ, &hdr_size) < 0) {
PMD_DRV_LOG(ERR, "TUNSETVNETHDRSZ failed: %s", strerror(errno));
if (ioctl(tapfd, TUNSETVNETHDRSZ, &hdr_size) < 0) {
PMD_DRV_LOG(ERR, "TUNSETVNETHDRSZ failed: %s", strerror(errno));
@@
-139,7
+143,9
@@
vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
goto error;
}
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;
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;