diff -up dpdk-2.0.0/build/.config.orig dpdk-2.0.0/build/.config diff -up dpdk-2.0.0/lib/librte_pmd_enic/enic_ethdev.c.orig dpdk-2.0.0/lib/librte_pmd_enic/enic_ethdev.c --- dpdk-2.0.0/lib/librte_pmd_enic/enic_ethdev.c.orig 2015-04-06 14:01:57.388519083 -0400 +++ dpdk-2.0.0/lib/librte_pmd_enic/enic_ethdev.c 2015-04-06 14:05:50.939207323 -0400 @@ -313,13 +313,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); } /* diff -up dpdk-2.0.0/test/.config.orig dpdk-2.0.0/test/.config