Use new API to update link status, and fix incorrect return
value.  The link_update operation should have been returning -1
if link changed.

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/net/bnxt/bnxt_ethdev.c | 21 ++-------------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index c9d11228be46..4c79eb51fc22 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -469,20 +469,6 @@ static int bnxt_dev_configure_op(struct rte_eth_dev 
*eth_dev)
        return 0;
 }
 
-static inline int
-rte_bnxt_atomic_write_link_status(struct rte_eth_dev *eth_dev,
-                               struct rte_eth_link *link)
-{
-       struct rte_eth_link *dst = &eth_dev->data->dev_link;
-       struct rte_eth_link *src = link;
-
-       if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst,
-                                       *(uint64_t *)src) == 0)
-               return 1;
-
-       return 0;
-}
-
 static void bnxt_print_link_info(struct rte_eth_dev *eth_dev)
 {
        struct rte_eth_link *link = &eth_dev->data->dev_link;
@@ -685,12 +671,9 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int 
wait_to_complete)
        } while (!new.link_status && cnt--);
 
 out:
-       /* Timed out or success */
-       if (new.link_status != eth_dev->data->dev_link.link_status ||
-       new.link_speed != eth_dev->data->dev_link.link_speed) {
-               rte_bnxt_atomic_write_link_status(eth_dev, &new);
+       rc = _rte_eth_link_update(eth_dev, &new);
+       if (rc)
                bnxt_print_link_info(eth_dev);
-       }
 
        return rc;
 }
-- 
2.11.0

Reply via email to