fix typos using codespell utility
[dpdk.git] / drivers / net / bonding / rte_eth_bond_pmd.c
index 2ddcd07..37f3d43 100644 (file)
@@ -793,8 +793,8 @@ bond_ethdev_tx_burst_alb(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
        uint16_t slave_bufs_pkts[RTE_MAX_ETHPORTS + 1] = { 0 };
 
        /*
-        * We create separate transmit buffers for update packets as they wont be
-        * counted in num_tx_total.
+        * We create separate transmit buffers for update packets as they won't
+        * be counted in num_tx_total.
         */
        struct rte_mbuf *update_bufs[RTE_MAX_ETHPORTS][ALB_HASH_TABLE_SIZE];
        uint16_t update_bufs_pkts[RTE_MAX_ETHPORTS] = { 0 };
@@ -1435,9 +1435,11 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
        }
 
        /* If lsc interrupt is set, check initial slave's link status */
-       if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
+       if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) {
+               slave_eth_dev->dev_ops->link_update(slave_eth_dev, 0);
                bond_ethdev_lsc_event_callback(slave_eth_dev->data->port_id,
                        RTE_ETH_EVENT_INTR_LSC, &bonded_eth_dev->data->port_id);
+       }
 
        return 0;
 }
@@ -1661,7 +1663,22 @@ void
 bond_ethdev_close(struct rte_eth_dev *dev)
 {
        struct bond_dev_private *internals = dev->data->dev_private;
+       uint8_t bond_port_id = internals->port_id;
+       int skipped = 0;
+
+       RTE_LOG(INFO, EAL, "Closing bonded device %s\n", dev->data->name);
+       while (internals->slave_count != skipped) {
+               uint8_t port_id = internals->slaves[skipped].port_id;
+
+               rte_eth_dev_stop(port_id);
 
+               if (rte_eth_bond_slave_remove(bond_port_id, port_id) != 0) {
+                       RTE_LOG(ERR, EAL,
+                               "Failed to remove port %d from bonded device "
+                               "%s\n", port_id, dev->data->name);
+                       skipped++;
+               }
+       }
        bond_ethdev_free_queues(dev);
        rte_bitmap_reset(internals->vlan_filter_bmp);
 }
@@ -1676,8 +1693,9 @@ bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        dev_info->max_mac_addrs = 1;
 
-       dev_info->max_rx_pktlen = internals->candidate_max_rx_pktlen ?
-                                 internals->candidate_max_rx_pktlen : 2048;
+       dev_info->max_rx_pktlen = internals->candidate_max_rx_pktlen
+                                 ? internals->candidate_max_rx_pktlen
+                                 : ETHER_MAX_JUMBO_FRAME_LEN;
 
        dev_info->max_rx_queues = (uint16_t)128;
        dev_info->max_tx_queues = (uint16_t)512;