#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"
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;
}
}
- 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;
}