net/virtio-user: fix packed vq option parsing
Add the RING_PACKED feature to dev->unsupported_features when it's disabled, and add the missing packed vq param string. And also revert the unexpected change to MAC option introduced when adding packed vq option. Fixes: 34f3966c7f81 ("net/virtio-user: add option to use packed queues") Signed-off-by: Tiwei Bie <tiwei.bie@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
This commit is contained in:
parent
dc5a6e7422
commit
9070f88b81
@ -474,17 +474,14 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
|
||||
"packed virtqueues\n");
|
||||
return -1;
|
||||
}
|
||||
dev->device_features |= (1ull << VIRTIO_F_RING_PACKED);
|
||||
} else {
|
||||
dev->device_features &= ~(1ull << VIRTIO_F_RING_PACKED);
|
||||
dev->unsupported_features |= (1ull << VIRTIO_F_RING_PACKED);
|
||||
}
|
||||
|
||||
if (dev->mac_specified) {
|
||||
dev->device_features |= (1ull << VIRTIO_NET_F_MAC);
|
||||
} else {
|
||||
dev->device_features &= ~(1ull << VIRTIO_NET_F_MAC);
|
||||
if (dev->mac_specified)
|
||||
dev->frontend_features |= (1ull << VIRTIO_NET_F_MAC);
|
||||
else
|
||||
dev->unsupported_features |= (1ull << VIRTIO_NET_F_MAC);
|
||||
}
|
||||
|
||||
if (cq) {
|
||||
/* device does not really need to know anything about CQ,
|
||||
|
@ -361,7 +361,7 @@ static const char *valid_args[] = {
|
||||
VIRTIO_USER_ARG_MRG_RXBUF,
|
||||
#define VIRTIO_USER_ARG_IN_ORDER "in_order"
|
||||
VIRTIO_USER_ARG_IN_ORDER,
|
||||
#define VIRTIO_USER_ARG_PACKED_VQ "packed_vq"
|
||||
#define VIRTIO_USER_ARG_PACKED_VQ "packed_vq"
|
||||
VIRTIO_USER_ARG_PACKED_VQ,
|
||||
NULL
|
||||
};
|
||||
@ -466,11 +466,11 @@ virtio_user_pmd_probe(struct rte_vdev_device *dev)
|
||||
uint64_t server_mode = VIRTIO_USER_DEF_SERVER_MODE;
|
||||
uint64_t mrg_rxbuf = 1;
|
||||
uint64_t in_order = 1;
|
||||
uint64_t packed_vq = 0;
|
||||
char *path = NULL;
|
||||
char *ifname = NULL;
|
||||
char *mac_addr = NULL;
|
||||
int ret = -1;
|
||||
uint64_t packed_vq = 0;
|
||||
|
||||
kvlist = rte_kvargs_parse(rte_vdev_device_args(dev), valid_args);
|
||||
if (!kvlist) {
|
||||
@ -689,4 +689,5 @@ RTE_PMD_REGISTER_PARAM_STRING(net_virtio_user,
|
||||
"iface=<string> "
|
||||
"server=<0|1> "
|
||||
"mrg_rxbuf=<0|1> "
|
||||
"in_order=<0|1>");
|
||||
"in_order=<0|1> "
|
||||
"packed_vq=<0|1>");
|
||||
|
Loading…
x
Reference in New Issue
Block a user