[dpdk-dev] [PATCH] ethdev: replace bus specific struct with generic dev

Shreyansh Jain shreyansh.jain at nxp.com
Wed Mar 28 09:04:52 CEST 2018


On 3/27/2018 11:10 PM, Ferruh Yigit wrote:
> Public struct rte_eth_dev_info has a "struct rte_pci_device" field in it
> although it is common for all ethdev in all buses.
> 
> Replacing pci specific struct with generic device struct and updating
> places that are using pci device in a way to get this information from
> generic device.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
> Cc: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> 
> There is no deprecation notice sent for this update but in this release
> ethdev info already updated and ABI already broken, it can be good
> opportunity for this update.
> ---
>   app/test-pmd/config.c                     | 11 ++++++++++-
>   app/test-pmd/testpmd.h                    | 24 ++++++++++++++++++------
>   drivers/net/af_packet/rte_eth_af_packet.c |  1 +
>   drivers/net/ark/ark_ethdev.c              |  4 +++-
>   drivers/net/avf/avf_ethdev.c              |  2 +-
>   drivers/net/avp/avp_ethdev.c              |  2 +-
>   drivers/net/bnx2x/bnx2x_ethdev.c          |  2 +-
>   drivers/net/bnxt/bnxt_ethdev.c            |  2 +-
>   drivers/net/cxgbe/cxgbe_ethdev.c          |  2 +-
>   drivers/net/dpaa/dpaa_ethdev.c            |  1 +
>   drivers/net/dpaa2/dpaa2_ethdev.c          |  1 +
>   drivers/net/e1000/em_ethdev.c             |  2 +-
>   drivers/net/e1000/igb_ethdev.c            |  4 ++--
>   drivers/net/ena/ena_ethdev.c              |  2 +-
>   drivers/net/enic/enic_ethdev.c            |  2 +-
>   drivers/net/fm10k/fm10k_ethdev.c          |  2 +-
>   drivers/net/i40e/i40e_ethdev.c            |  2 +-
>   drivers/net/i40e/i40e_ethdev_vf.c         |  2 +-
>   drivers/net/ixgbe/ixgbe_ethdev.c          |  4 ++--
>   drivers/net/kni/rte_eth_kni.c             |  2 +-
>   drivers/net/liquidio/lio_ethdev.c         |  2 +-
>   drivers/net/mlx4/mlx4_ethdev.c            |  2 +-
>   drivers/net/mlx5/mlx5_ethdev.c            |  2 +-
>   drivers/net/mrvl/mrvl_ethdev.c            |  2 ++
>   drivers/net/nfp/nfp_net.c                 |  2 +-
>   drivers/net/null/rte_eth_null.c           |  1 +
>   drivers/net/octeontx/octeontx_ethdev.c    |  2 +-
>   drivers/net/pcap/rte_eth_pcap.c           |  1 +
>   drivers/net/qede/qede_ethdev.c            |  2 +-
>   drivers/net/ring/rte_eth_ring.c           |  1 +
>   drivers/net/sfc/sfc_ethdev.c              |  2 +-
>   drivers/net/szedata2/rte_eth_szedata2.c   |  2 +-
>   drivers/net/tap/rte_eth_tap.c             |  2 +-
>   drivers/net/thunderx/nicvf_ethdev.c       |  2 +-
>   drivers/net/virtio/virtio_ethdev.c        |  2 +-
>   drivers/net/vmxnet3/vmxnet3_ethdev.c      |  2 +-
>   examples/ethtool/lib/rte_ethtool.c        | 15 +++++++++------
>   examples/ip_pipeline/init.c               | 10 ++++++++--
>   examples/kni/main.c                       | 10 +++++++---
>   lib/librte_ether/rte_ethdev.h             |  2 +-
>   test/test/test_kni.c                      | 28 ++++++++++++++++++++++------
>   41 files changed, 114 insertions(+), 54 deletions(-)
> 

[...]

> diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
> index 781d75cc2..ec3a024c6 100644
> --- a/drivers/net/cxgbe/cxgbe_ethdev.c
> +++ b/drivers/net/cxgbe/cxgbe_ethdev.c
> @@ -148,7 +148,7 @@ static void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
>   		.nb_align = 1,
>   	};
>   
> -	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
> +	device_info->device = eth_dev->device;
>   
>   	device_info->min_rx_bufsize = CXGBE_MIN_RX_BUFSIZE;
>   	device_info->max_rx_pktlen = CXGBE_MAX_RX_PKTLEN;
> diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
> index db493648a..29513158f 100644
> --- a/drivers/net/dpaa/dpaa_ethdev.c
> +++ b/drivers/net/dpaa/dpaa_ethdev.c
> @@ -245,6 +245,7 @@ static void dpaa_eth_dev_info(struct rte_eth_dev *dev,
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> +	dev_info->device = dev->device;
>   	dev_info->max_rx_queues = dpaa_intf->nb_rx_queues;
>   	dev_info->max_tx_queues = dpaa_intf->nb_tx_queues;
>   	dev_info->min_rx_bufsize = DPAA_MIN_RX_BUF_SIZE;
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
> index 2fb7b2da7..7802067e8 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> @@ -163,6 +163,7 @@ dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	dev_info->if_index = priv->hw_id;
>   
> +	dev_info->device = dev->device;
>   	dev_info->max_mac_addrs = priv->max_mac_filters;
>   	dev_info->max_rx_pktlen = DPAA2_MAX_RX_PKT_LEN;
>   	dev_info->min_rx_bufsize = DPAA2_MIN_RX_BUF_SIZE;

[...]

For dpaa and dpaa2 specific change...

> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index ab1030d42..0ed903966 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -995,7 +995,7 @@ struct rte_pci_device;
>    * Ethernet device information
>    */
>   struct rte_eth_dev_info {
> -	struct rte_pci_device *pci_dev; /**< Device PCI information. */
> +	struct rte_device *device; /** Generic device information */
>   	const char *driver_name; /**< Device Driver name. */
>   	unsigned int if_index; /**< Index to bound host interface, or 0 if none.
>   		Use if_indextoname() to translate into an interface name. */

[...]

And for the above change:

Acked-By: Shreyansh Jain <shreyansh.jain at nxp.com>

_
Shreyansh


More information about the dev mailing list