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/ice: enable flow redirect on switch
[dpdk.git]
/
drivers
/
net
/
virtio
/
virtio_ethdev.c
diff --git
a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net/virtio/virtio_ethdev.c
index
76bd40a
..
f9d0ea7
100644
(file)
--- a/
drivers/net/virtio/virtio_ethdev.c
+++ b/
drivers/net/virtio/virtio_ethdev.c
@@
-465,8
+465,8
@@
virtio_init_queue(struct rte_eth_dev *dev, uint16_t vtpci_queue_idx)
return -EINVAL;
}
return -EINVAL;
}
- if (!rte_is_power_of_2(vq_size)) {
- PMD_INIT_LOG(ERR, "virtqueue size is not powerof 2");
+ if (!
vtpci_packed_queue(hw) && !
rte_is_power_of_2(vq_size)) {
+ PMD_INIT_LOG(ERR, "
split
virtqueue size is not powerof 2");
return -EINVAL;
}
return -EINVAL;
}
@@
-1913,6
+1913,8
@@
eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
goto err_vtpci_init;
}
goto err_vtpci_init;
}
+ rte_spinlock_init(&hw->state_lock);
+
/* reset device and negotiate default features */
ret = virtio_init_device(eth_dev, VIRTIO_PMD_DEFAULT_GUEST_FEATURES);
if (ret < 0)
/* reset device and negotiate default features */
ret = virtio_init_device(eth_dev, VIRTIO_PMD_DEFAULT_GUEST_FEATURES);
if (ret < 0)
@@
-2073,6
+2075,13
@@
virtio_dev_configure(struct rte_eth_dev *dev)
return -EINVAL;
}
return -EINVAL;
}
+ if (txmode->mq_mode != ETH_MQ_TX_NONE) {
+ PMD_DRV_LOG(ERR,
+ "Unsupported Tx multi queue mode %d",
+ txmode->mq_mode);
+ return -EINVAL;
+ }
+
if (dev->data->dev_conf.intr_conf.rxq) {
ret = virtio_init_device(dev, hw->req_guest_features);
if (ret < 0)
if (dev->data->dev_conf.intr_conf.rxq) {
ret = virtio_init_device(dev, hw->req_guest_features);
if (ret < 0)
@@
-2148,8
+2157,6
@@
virtio_dev_configure(struct rte_eth_dev *dev)
return -EBUSY;
}
return -EBUSY;
}
- rte_spinlock_init(&hw->state_lock);
-
hw->use_simple_rx = 1;
if (vtpci_with_feature(hw, VIRTIO_F_IN_ORDER)) {
hw->use_simple_rx = 1;
if (vtpci_with_feature(hw, VIRTIO_F_IN_ORDER)) {