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 <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
8e14dc285a
commit
cc92eb9a97
@ -50,7 +50,6 @@
|
||||
#include <rte_memcpy.h>
|
||||
#include <rte_kvargs.h>
|
||||
#include <rte_dev.h>
|
||||
#include <rte_atomic.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user