raw/ifpga: add HE-LPBK AFU driver
[dpdk.git] / drivers / net / bonding / rte_eth_bond_api.c
index 84943cf..4ac191c 100644 (file)
@@ -151,8 +151,8 @@ int
 rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
 {
        struct bond_dev_private *internals;
+       struct rte_eth_dev *bond_dev;
        char devargs[52];
-       uint16_t port_id;
        int ret;
 
        if (name == NULL) {
@@ -169,8 +169,8 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
        if (ret)
                return ret;
 
-       ret = rte_eth_dev_get_port_by_name(name, &port_id);
-       RTE_ASSERT(!ret);
+       bond_dev = rte_eth_dev_get_by_name(name);
+       RTE_ASSERT(bond_dev);
 
        /*
         * To make bond_ethdev_configure() happy we need to free the
@@ -178,11 +178,11 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
         *
         * Also see comment in bond_ethdev_configure().
         */
-       internals = rte_eth_devices[port_id].data->dev_private;
+       internals = bond_dev->data->dev_private;
        rte_kvargs_free(internals->kvlist);
        internals->kvlist = NULL;
 
-       return port_id;
+       return bond_dev->data->port_id;
 }
 
 int
@@ -375,7 +375,7 @@ eth_bond_slave_inherit_dev_info_rx_next(struct bond_dev_private *internals,
         * value. Thus, the new internal value of default Rx queue offloads
         * has to be masked by rx_queue_offload_capa to make sure that only
         * commonly supported offloads are preserved from both the previous
-        * value and the value being inhereted from the new slave device.
+        * value and the value being inherited from the new slave device.
         */
        rxconf_i->offloads = (rxconf_i->offloads | rxconf->offloads) &
                             internals->rx_queue_offload_capa;
@@ -413,7 +413,7 @@ eth_bond_slave_inherit_dev_info_tx_next(struct bond_dev_private *internals,
         * value. Thus, the new internal value of default Tx queue offloads
         * has to be masked by tx_queue_offload_capa to make sure that only
         * commonly supported offloads are preserved from both the previous
-        * value and the value being inhereted from the new slave device.
+        * value and the value being inherited from the new slave device.
         */
        txconf_i->offloads = (txconf_i->offloads | txconf->offloads) &
                             internals->tx_queue_offload_capa;
@@ -566,6 +566,12 @@ __eth_bond_slave_add_lock_free(uint16_t bonded_port_id, uint16_t slave_port_id)
                                        slave_port_id);
                        return -1;
                }
+               if (slave_start(bonded_eth_dev, slave_eth_dev) != 0) {
+                       internals->slave_count--;
+                       RTE_BOND_LOG(ERR, "rte_bond_slaves_start: port=%d",
+                                       slave_port_id);
+                       return -1;
+               }
        }
 
        /* Update all slave devices MACs */
@@ -668,7 +674,7 @@ __eth_bond_slave_remove_lock_free(uint16_t bonded_port_id,
                }
 
        if (slave_idx < 0) {
-               RTE_BOND_LOG(ERR, "Couldn't find slave in port list, slave count %d",
+               RTE_BOND_LOG(ERR, "Couldn't find slave in port list, slave count %u",
                                internals->slave_count);
                return -1;
        }