diff -up ./dpdk-2.1.0/drivers/net/enic/enic_ethdev.c.enic ./dpdk-2.1.0/drivers/net/enic/enic_ethdev.c --- ./dpdk-2.1.0/drivers/net/enic/enic_ethdev.c.enic 2015-08-17 13:35:37.000000000 -0400 +++ ./dpdk-2.1.0/drivers/net/enic/enic_ethdev.c 2015-08-26 10:33:17.953104878 -0400 @@ -348,13 +348,15 @@ static void enicpmd_dev_stop(struct rte_ { struct rte_eth_link link; struct enic *enic = pmd_priv(eth_dev); + uint64_t *dev_link_ptr = (uint64_t *)ð_dev->data->dev_link; + uint64_t *link_ptr = (uint64_t *)&link; ENICPMD_FUNC_TRACE(); enic_disable(enic); memset(&link, 0, sizeof(link)); - rte_atomic64_cmpset((uint64_t *)ð_dev->data->dev_link, - *(uint64_t *)ð_dev->data->dev_link, - *(uint64_t *)&link); + rte_atomic64_cmpset(dev_link_ptr, + *dev_link_ptr, + *link_ptr); } /*