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/iavf: check max SIMD bitwidth
[dpdk.git]
/
drivers
/
net
/
bonding
/
rte_eth_bond_pmd.c
diff --git
a/drivers/net/bonding/rte_eth_bond_pmd.c
b/drivers/net/bonding/rte_eth_bond_pmd.c
index
99910e9
..
057b1ad
100644
(file)
--- a/
drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/
drivers/net/bonding/rte_eth_bond_pmd.c
@@
-1694,7
+1694,10
@@
slave_configure(struct rte_eth_dev *bonded_eth_dev,
struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
/* Stop slave */
struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
/* Stop slave */
- rte_eth_dev_stop(slave_eth_dev->data->port_id);
+ errval = rte_eth_dev_stop(slave_eth_dev->data->port_id);
+ if (errval != 0)
+ RTE_BOND_LOG(ERR, "rte_eth_dev_stop: port %u, err (%d)",
+ slave_eth_dev->data->port_id, errval);
/* Enable interrupts on slave device if supported */
if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
/* Enable interrupts on slave device if supported */
if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
@@
-2046,11
+2049,12
@@
bond_ethdev_free_queues(struct rte_eth_dev *dev)
}
}
}
}
-void
+int
bond_ethdev_stop(struct rte_eth_dev *eth_dev)
{
struct bond_dev_private *internals = eth_dev->data->dev_private;
uint16_t i;
bond_ethdev_stop(struct rte_eth_dev *eth_dev)
{
struct bond_dev_private *internals = eth_dev->data->dev_private;
uint16_t i;
+ int ret;
if (internals->mode == BONDING_MODE_8023AD) {
struct port *port;
if (internals->mode == BONDING_MODE_8023AD) {
struct port *port;
@@
-2089,10
+2093,17
@@
bond_ethdev_stop(struct rte_eth_dev *eth_dev)
internals->active_slave_count, slave_id) !=
internals->active_slave_count) {
internals->slaves[i].last_link_status = 0;
internals->active_slave_count, slave_id) !=
internals->active_slave_count) {
internals->slaves[i].last_link_status = 0;
- rte_eth_dev_stop(slave_id);
+ ret = rte_eth_dev_stop(slave_id);
+ if (ret != 0) {
+ RTE_BOND_LOG(ERR, "Failed to stop device on port %u",
+ slave_id);
+ return ret;
+ }
deactivate_slave(eth_dev, slave_id);
}
}
deactivate_slave(eth_dev, slave_id);
}
}
+
+ return 0;
}
int
}
int
@@
-2110,7
+2121,11
@@
bond_ethdev_close(struct rte_eth_dev *dev)
while (internals->slave_count != skipped) {
uint16_t port_id = internals->slaves[skipped].port_id;
while (internals->slave_count != skipped) {
uint16_t port_id = internals->slaves[skipped].port_id;
- rte_eth_dev_stop(port_id);
+ if (rte_eth_dev_stop(port_id) != 0) {
+ RTE_BOND_LOG(ERR, "Failed to stop device on port %u",
+ port_id);
+ skipped++;
+ }
if (rte_eth_bond_slave_remove(bond_port_id, port_id) != 0) {
RTE_BOND_LOG(ERR,
if (rte_eth_bond_slave_remove(bond_port_id, port_id) != 0) {
RTE_BOND_LOG(ERR,
@@
-3219,7
+3234,8
@@
bond_alloc(struct rte_vdev_device *dev, uint8_t mode)
}
eth_dev->dev_ops = &default_dev_ops;
}
eth_dev->dev_ops = &default_dev_ops;
- eth_dev->data->dev_flags = RTE_ETH_DEV_INTR_LSC;
+ eth_dev->data->dev_flags = RTE_ETH_DEV_INTR_LSC |
+ RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
rte_spinlock_init(&internals->lock);
rte_spinlock_init(&internals->lsc_lock);
rte_spinlock_init(&internals->lock);
rte_spinlock_init(&internals->lsc_lock);
@@
-3417,6
+3433,7
@@
bond_remove(struct rte_vdev_device *dev)
struct rte_eth_dev *eth_dev;
struct bond_dev_private *internals;
const char *name;
struct rte_eth_dev *eth_dev;
struct bond_dev_private *internals;
const char *name;
+ int ret = 0;
if (!dev)
return -EINVAL;
if (!dev)
return -EINVAL;
@@
-3439,12
+3456,12
@@
bond_remove(struct rte_vdev_device *dev)
return -EBUSY;
if (eth_dev->data->dev_started == 1) {
return -EBUSY;
if (eth_dev->data->dev_started == 1) {
- bond_ethdev_stop(eth_dev);
+
ret =
bond_ethdev_stop(eth_dev);
bond_ethdev_close(eth_dev);
}
rte_eth_dev_release_port(eth_dev);
bond_ethdev_close(eth_dev);
}
rte_eth_dev_release_port(eth_dev);
- return
0
;
+ return
ret
;
}
/* this part will resolve the slave portids after all the other pdev and vdev
}
/* this part will resolve the slave portids after all the other pdev and vdev