The adapter struct is just a wrapper around the vmxnet3_hw structure. Eliminate the wrapper and get rid of the macro used to access and needlessly cast the private data.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org> --- lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c | 30 +++++++++++++----------------- lib/librte_pmd_vmxnet3/vmxnet3_ethdev.h | 10 ---------- lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 16 +++++++--------- 3 files changed, 20 insertions(+), 36 deletions(-) --- a/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c 2014-06-12 18:13:57.408375309 -0700 +++ b/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c 2014-06-12 18:14:38.736593592 -0700 @@ -186,8 +186,7 @@ eth_vmxnet3_dev_init(__attribute__((unus struct rte_eth_dev *eth_dev) { struct rte_pci_device *pci_dev; - struct vmxnet3_hw *hw = - VMXNET3_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); + struct vmxnet3_hw *hw = eth_dev->data->dev_private; uint32_t mac_hi, mac_lo, ver; PMD_INIT_FUNC_TRACE(); @@ -271,7 +270,7 @@ static struct eth_driver rte_vmxnet3_pmd .drv_flags = RTE_PCI_DRV_NEED_IGB_UIO, }, .eth_dev_init = eth_vmxnet3_dev_init, - .dev_private_size = sizeof(struct vmxnet3_adapter), + .dev_private_size = sizeof(struct vmxnet3_hw), }; /* @@ -292,8 +291,7 @@ static int vmxnet3_dev_configure(struct rte_eth_dev *dev) { const struct rte_memzone *mz; - struct vmxnet3_hw *hw = - VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; size_t size; PMD_INIT_FUNC_TRACE(); @@ -368,7 +366,7 @@ static int vmxnet3_setup_driver_shared(struct rte_eth_dev *dev) { struct rte_eth_conf port_conf = dev->data->dev_conf; - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; Vmxnet3_DriverShared *shared = hw->shared; Vmxnet3_DSDevRead *devRead = &shared->devRead; uint32_t *mac_ptr; @@ -487,7 +485,7 @@ static int vmxnet3_dev_start(struct rte_eth_dev *dev) { int status, ret; - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; PMD_INIT_FUNC_TRACE(); @@ -544,8 +542,7 @@ static void vmxnet3_dev_stop(struct rte_eth_dev *dev) { struct rte_eth_link link; - struct vmxnet3_hw *hw = - VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; PMD_INIT_FUNC_TRACE(); @@ -580,8 +577,7 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev static void vmxnet3_dev_close(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw = - VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; PMD_INIT_FUNC_TRACE(); @@ -594,7 +590,7 @@ static void vmxnet3_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) { unsigned int i; - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, VMXNET3_CMD_GET_STATS); @@ -651,7 +647,7 @@ vmxnet3_dev_info_get(__attribute__((unus static int vmxnet3_dev_link_update(struct rte_eth_dev *dev, __attribute__((unused)) int wait_to_complete) { - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; struct rte_eth_link link; uint32_t ret; @@ -694,7 +690,7 @@ vmxnet3_dev_set_rxmode(struct vmxnet3_hw static void vmxnet3_dev_promiscuous_enable(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_PROMISC, 1); } @@ -703,7 +699,7 @@ vmxnet3_dev_promiscuous_enable(struct rt static void vmxnet3_dev_promiscuous_disable(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_PROMISC, 0); } @@ -712,7 +708,7 @@ vmxnet3_dev_promiscuous_disable(struct r static void vmxnet3_dev_allmulticast_enable(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_ALL_MULTI, 1); } @@ -721,7 +717,7 @@ vmxnet3_dev_allmulticast_enable(struct r static void vmxnet3_dev_allmulticast_disable(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; vmxnet3_dev_set_rxmode(hw, VMXNET3_RXM_ALL_MULTI, 0); } --- a/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.h 2014-06-12 18:13:57.408375309 -0700 +++ b/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.h 2014-06-12 18:13:57.404375287 -0700 @@ -117,16 +117,6 @@ struct vmxnet3_hw { vmxnet3_mf_table_t *mf_table; }; -/* - * Structure to store private data for each driver instance (for each port). - */ -struct vmxnet3_adapter { - struct vmxnet3_hw hw; -}; - -#define VMXNET3_DEV_PRIVATE_TO_HW(adapter)\ - (&((struct vmxnet3_adapter *)adapter)->hw) - #define VMXNET3_GET_ADDR_LO(reg) ((uint32_t)(reg)) #define VMXNET3_GET_ADDR_HI(reg) ((uint32_t)(((uint64_t)(reg)) >> 32)) --- a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c 2014-06-12 18:13:57.408375309 -0700 +++ b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c 2014-06-12 18:13:57.404375287 -0700 @@ -628,15 +628,14 @@ vmxnet3_dev_tx_queue_setup(struct rte_et unsigned int socket_id, __attribute__((unused)) const struct rte_eth_txconf *tx_conf) { + struct vmxnet3_hw *hw = dev->data->dev_private; const struct rte_memzone *mz; struct vmxnet3_tx_queue *txq; - struct vmxnet3_hw *hw; struct vmxnet3_cmd_ring *ring; struct vmxnet3_comp_ring *comp_ring; int size; PMD_INIT_FUNC_TRACE(); - hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); if ((tx_conf->txq_flags & ETH_TXQ_FLAGS_NOMULTSEGS) != ETH_TXQ_FLAGS_NOMULTSEGS) { @@ -731,7 +730,7 @@ vmxnet3_dev_rx_queue_setup(struct rte_et { const struct rte_memzone *mz; struct vmxnet3_rx_queue *rxq; - struct vmxnet3_hw *hw; + struct vmxnet3_hw *hw = dev->data->dev_private; struct vmxnet3_cmd_ring *ring0, *ring1, *ring; struct vmxnet3_comp_ring *comp_ring; int size; @@ -741,7 +740,6 @@ vmxnet3_dev_rx_queue_setup(struct rte_et struct rte_pktmbuf_pool_private *mbp_priv; PMD_INIT_FUNC_TRACE(); - hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); mbp_priv = (struct rte_pktmbuf_pool_private *) rte_mempool_get_priv(mp); @@ -849,12 +847,12 @@ vmxnet3_dev_rx_queue_setup(struct rte_et int vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw; + struct vmxnet3_hw *hw = dev->data->dev_private; + int i, ret; uint8_t j; PMD_INIT_FUNC_TRACE(); - hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); for (i = 0; i < hw->num_rx_queues; i++) { vmxnet3_rx_queue_t *rxq = dev->data->rx_queues[i]; @@ -898,13 +896,13 @@ static uint8_t rss_intel_key[40] = { int vmxnet3_rss_configure(struct rte_eth_dev *dev) { - struct vmxnet3_hw *hw; + struct vmxnet3_hw *hw = dev->data->dev_private; struct VMXNET3_RSSConf *dev_rss_conf; struct rte_eth_rss_conf *port_rss_conf; uint8_t i, j; PMD_INIT_FUNC_TRACE(); - hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + dev_rss_conf = hw->rss_conf; port_rss_conf = &dev->data->dev_conf.rx_adv_conf.rss_conf; @@ -951,7 +949,7 @@ int vmxnet3_vlan_configure(struct rte_eth_dev *dev) { uint8_t i; - struct vmxnet3_hw *hw = VMXNET3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + struct vmxnet3_hw *hw = dev->data->dev_private; uint32_t *vf_table = hw->shared->devRead.rxFilterConf.vfTable; PMD_INIT_FUNC_TRACE();