From: Stephen Hemminger Date: Fri, 26 Jan 2018 02:01:49 +0000 (-0800) Subject: net/szedata2: use link status helper functions X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=cc92eb9a97bba5944d86944f2a8a92a75b62116f;p=dpdk.git net/szedata2: use link status helper functions Yet another driver which was not returing correct value on link change. Use new rte_eth_linkstatus_get/set helper functions to handle link status update. Since this driver can't be built on x86 could not even do a compile test. Signed-off-by: Stephen Hemminger Reviewed-by: Ferruh Yigit --- diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c index e53c738db5..1d02aee6fb 100644 --- a/drivers/net/szedata2/rte_eth_szedata2.c +++ b/drivers/net/szedata2/rte_eth_szedata2.c @@ -50,7 +50,6 @@ #include #include #include -#include #include "rte_eth_szedata2.h" #include "szedata2_iobuf.h" @@ -1174,14 +1173,14 @@ eth_link_update(struct rte_eth_dev *dev, int wait_to_complete __rte_unused) { struct rte_eth_link link; - struct rte_eth_link *link_ptr = &link; - struct rte_eth_link *dev_link = &dev->data->dev_link; struct pmd_internals *internals = (struct pmd_internals *) dev->data->dev_private; const volatile struct szedata2_ibuf *ibuf; uint32_t i; bool link_is_up = false; + memset(&link, 0, sizeof(link)); + switch (get_link_speed(internals)) { case SZEDATA2_LINK_SPEED_10G: link.link_speed = ETH_SPEED_NUM_10G; @@ -1212,13 +1211,11 @@ eth_link_update(struct rte_eth_dev *dev, } } - link.link_status = (link_is_up) ? ETH_LINK_UP : ETH_LINK_DOWN; + link.link_status = link_is_up ? ETH_LINK_UP : ETH_LINK_DOWN; link.link_autoneg = ETH_LINK_FIXED; - rte_atomic64_cmpset((uint64_t *)dev_link, *(uint64_t *)dev_link, - *(uint64_t *)link_ptr); - + rte_eth_linkstatus_set(dev, &link); return 0; }