net/bonding: fix updating slave link status
authorWei Wang <lnykww@gmail.com>
Tue, 25 Apr 2017 06:30:49 +0000 (14:30 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 28 Apr 2017 12:46:18 +0000 (14:46 +0200)
We need to update dev->data->dev_link before handling LSC event.
Otherwise it will still have the initial value after the startup of
the program before interrupt callback was executed.

Fixes: 414b202343ce ("bonding: fix initial link status of slave")
Cc: stable@dpdk.org
Signed-off-by: Wei Wang <lnykww@gmail.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
drivers/net/bonding/rte_eth_bond_pmd.c

index c94071f..82959ab 100644 (file)
@@ -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;
 }