]> git.droids-corp.org - dpdk.git/commitdiff
ethdev: move inline device operations
authorFerruh Yigit <ferruh.yigit@intel.com>
Wed, 9 Sep 2020 13:01:43 +0000 (14:01 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:08 +0000 (18:55 +0200)
This patch is a preparation to hide the 'struct eth_dev_ops' from
applications by moving some device operations from 'struct eth_dev_ops'
to 'struct rte_eth_dev'.

Mentioned ethdev APIs are in the data path and implemented as inline
because of performance reasons.

Exposing 'struct eth_dev_ops' to applications is bad because it is a
contract between ethdev and PMDs, not really needs to be known by
applications, also changes in the struct causing ABI breakages which
shouldn't.

To be able to both keep APIs inline and hide the 'struct eth_dev_ops',
moving device operations used in ethdev inline APIs to 'struct
rte_eth_dev' to the same level with Rx/Tx burst functions.

The list of dev_ops moved:
eth_rx_queue_count_t       rx_queue_count;
eth_rx_descriptor_done_t   rx_descriptor_done;
eth_rx_descriptor_status_t rx_descriptor_status;
eth_tx_descriptor_status_t tx_descriptor_status;

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: David Marchand <david.marchand@redhat.com>
Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
30 files changed:
doc/guides/nics/features.rst
doc/guides/rel_notes/release_20_11.rst
drivers/net/ark/ark_ethdev.c
drivers/net/atlantic/atl_ethdev.c
drivers/net/axgbe/axgbe_ethdev.c
drivers/net/bnxt/bnxt_ethdev.c
drivers/net/dpaa/dpaa_ethdev.c
drivers/net/dpaa2/dpaa2_ethdev.c
drivers/net/e1000/em_ethdev.c
drivers/net/e1000/igb_ethdev.c
drivers/net/enic/enic_ethdev.c
drivers/net/fm10k/fm10k_ethdev.c
drivers/net/i40e/i40e_ethdev.c
drivers/net/i40e/i40e_ethdev_vf.c
drivers/net/iavf/iavf_ethdev.c
drivers/net/ice/ice_ethdev.c
drivers/net/igc/igc_ethdev.c
drivers/net/ixgbe/ixgbe_ethdev.c
drivers/net/mlx5/linux/mlx5_os.c
drivers/net/mlx5/mlx5_flow.c
drivers/net/netvsc/hn_ethdev.c
drivers/net/nfp/nfp_net.c
drivers/net/octeontx2/otx2_ethdev.c
drivers/net/qede/qede_ethdev.c
drivers/net/sfc/sfc_ethdev.c
drivers/net/thunderx/nicvf_ethdev.c
drivers/net/vhost/rte_eth_vhost.c
drivers/net/virtio/virtio_ethdev.c
lib/librte_ethdev/rte_ethdev.h
lib/librte_ethdev/rte_ethdev_core.h

index edd21c4d8e9d7788d5b026387499cff194434040..dd8c9555b07bede8f2b643313fc4a60c02eeb936 100644 (file)
@@ -646,9 +646,9 @@ used, status can be "Available", "Done" or "Unavailable". When
 ``rx_descriptor_done`` is used, status can be "DD bit is set" or "DD bit is
 not set".
 
-* **[implements] eth_dev_ops**: ``rx_descriptor_status``.
+* **[implements] rte_eth_dev**: ``rx_descriptor_status``.
 * **[related]    API**: ``rte_eth_rx_descriptor_status()``.
-* **[implements] eth_dev_ops**: ``rx_descriptor_done``.
+* **[implements] rte_eth_dev**: ``rx_descriptor_done``.
 * **[related]    API**: ``rte_eth_rx_descriptor_done()``.
 
 
@@ -660,7 +660,7 @@ Tx descriptor status
 Supports checking the status of a Tx descriptor. Status can be "Full", "Done"
 or "Unavailable."
 
-* **[implements] eth_dev_ops**: ``tx_descriptor_status``.
+* **[implements] rte_eth_dev**: ``tx_descriptor_status``.
 * **[related]    API**: ``rte_eth_tx_descriptor_status()``.
 
 
index be019267ced2d57533c79beb511b8446ed1d41e3..374b6d3250b508cf0192c734dbc6eb7b6496c681 100644 (file)
@@ -153,6 +153,16 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+* ``ethdev`` changes
+
+  * Following device operation function pointers moved
+    from ``struct eth_dev_ops`` to ``struct rte_eth_dev``:
+
+    * ``eth_rx_queue_count_t       rx_queue_count;``
+    * ``eth_rx_descriptor_done_t   rx_descriptor_done;``
+    * ``eth_rx_descriptor_status_t rx_descriptor_status;``
+    * ``eth_tx_descriptor_status_t tx_descriptor_status;``
+
 
 Known Issues
 ------------
index 646427d0c061cfd3d8adb2c91120ccbc0b5d3e96..d472ae56431c302389d49bf471a498c880a3c7ef 100644 (file)
@@ -132,7 +132,6 @@ static const struct eth_dev_ops ark_eth_dev_ops = {
        .dev_infos_get = eth_ark_dev_info_get,
 
        .rx_queue_setup = eth_ark_dev_rx_queue_setup,
-       .rx_queue_count = eth_ark_dev_rx_queue_count,
        .tx_queue_setup = eth_ark_tx_queue_setup,
 
        .link_update = eth_ark_dev_link_update,
@@ -318,6 +317,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
                return -1;
 
        dev->dev_ops = &ark_eth_dev_ops;
+       dev->rx_queue_count = eth_ark_dev_rx_queue_count;
 
        dev->data->mac_addrs = rte_zmalloc("ark", RTE_ETHER_ADDR_LEN, 0);
        if (!dev->data->mac_addrs) {
index d3b00ab295e4bb54b9434d1962c231ee07d95d17..540b106045ecfb1b5c511961b2fb8c3271b49d09 100644 (file)
@@ -313,10 +313,6 @@ static const struct eth_dev_ops atl_eth_dev_ops = {
        .rx_queue_intr_enable = atl_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable = atl_dev_rx_queue_intr_disable,
 
-       .rx_queue_count       = atl_rx_queue_count,
-       .rx_descriptor_status = atl_dev_rx_descriptor_status,
-       .tx_descriptor_status = atl_dev_tx_descriptor_status,
-
        /* EEPROM */
        .get_eeprom_length    = atl_dev_get_eeprom_length,
        .get_eeprom           = atl_dev_get_eeprom,
@@ -373,6 +369,11 @@ eth_atl_dev_init(struct rte_eth_dev *eth_dev)
        PMD_INIT_FUNC_TRACE();
 
        eth_dev->dev_ops = &atl_eth_dev_ops;
+
+       eth_dev->rx_queue_count       = atl_rx_queue_count;
+       eth_dev->rx_descriptor_status = atl_dev_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = atl_dev_tx_descriptor_status;
+
        eth_dev->rx_pkt_burst = &atl_recv_pkts;
        eth_dev->tx_pkt_burst = &atl_xmit_pkts;
        eth_dev->tx_pkt_prepare = &atl_prep_pkts;
index 0c25739f829aeb8c35f78d7def95526ebaabadd5..02ceb957548b7c42b18885595f586c545c5c4c14 100644 (file)
@@ -224,8 +224,6 @@ static const struct eth_dev_ops axgbe_eth_dev_ops = {
        .rxq_info_get                 = axgbe_rxq_info_get,
        .txq_info_get                 = axgbe_txq_info_get,
        .dev_supported_ptypes_get     = axgbe_dev_supported_ptypes_get,
-       .rx_descriptor_status         = axgbe_dev_rx_descriptor_status,
-       .tx_descriptor_status         = axgbe_dev_tx_descriptor_status,
        .mtu_set                = axgb_mtu_set,
 };
 
@@ -1632,6 +1630,9 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
 
        eth_dev->dev_ops = &axgbe_eth_dev_ops;
 
+       eth_dev->rx_descriptor_status = axgbe_dev_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = axgbe_dev_tx_descriptor_status;
+
        /*
         * For secondary processes, we don't initialise any further as primary
         * has already done this work.
index 75d055be0091e8a32848ad4c253b3b875ff519d3..4d224bfa04ee8c3733d397837c88224135d80eb2 100644 (file)
@@ -4246,9 +4246,6 @@ static const struct eth_dev_ops bnxt_dev_ops = {
        .dev_led_off = bnxt_dev_led_off_op,
        .xstats_get_by_id = bnxt_dev_xstats_get_by_id_op,
        .xstats_get_names_by_id = bnxt_dev_xstats_get_names_by_id_op,
-       .rx_queue_count = bnxt_rx_queue_count_op,
-       .rx_descriptor_status = bnxt_rx_descriptor_status_op,
-       .tx_descriptor_status = bnxt_tx_descriptor_status_op,
        .rx_queue_start = bnxt_rx_queue_start,
        .rx_queue_stop = bnxt_rx_queue_stop,
        .tx_queue_start = bnxt_tx_queue_start,
@@ -5681,6 +5678,9 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused)
                PMD_DRV_LOG(INFO, "%s\n", bnxt_version);
 
        eth_dev->dev_ops = &bnxt_dev_ops;
+       eth_dev->rx_queue_count = bnxt_rx_queue_count_op;
+       eth_dev->rx_descriptor_status = bnxt_rx_descriptor_status_op;
+       eth_dev->tx_descriptor_status = bnxt_tx_descriptor_status_op;
        eth_dev->rx_pkt_burst = &bnxt_recv_pkts;
        eth_dev->tx_pkt_burst = &bnxt_xmit_pkts;
 
index b0f2023e609baeed336a6137a55cb60185ca9de8..e2c3fd0368e884e32efdfc6bfdf3f728a1e68ea9 100644 (file)
@@ -1421,7 +1421,6 @@ static struct eth_dev_ops dpaa_devops = {
        .tx_queue_setup           = dpaa_eth_tx_queue_setup,
        .rx_queue_release         = dpaa_eth_rx_queue_release,
        .tx_queue_release         = dpaa_eth_tx_queue_release,
-       .rx_queue_count           = dpaa_dev_rx_queue_count,
        .rx_burst_mode_get        = dpaa_dev_rx_burst_mode_get,
        .tx_burst_mode_get        = dpaa_dev_tx_burst_mode_get,
        .rxq_info_get             = dpaa_rxq_info_get,
@@ -1917,6 +1916,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 
        /* Populate ethdev structure */
        eth_dev->dev_ops = &dpaa_devops;
+       eth_dev->rx_queue_count = dpaa_dev_rx_queue_count;
        eth_dev->rx_pkt_burst = dpaa_eth_queue_rx;
        eth_dev->tx_pkt_burst = dpaa_eth_tx_drop_all;
 
index 02c254846c2a4c59d4879e08449378727252a1f1..38cf0ab71c156e35e92a96ab82c36155e32c9878 100644 (file)
@@ -2331,7 +2331,6 @@ static struct eth_dev_ops dpaa2_ethdev_ops = {
        .tx_queue_release  = dpaa2_dev_tx_queue_release,
        .rx_burst_mode_get = dpaa2_dev_rx_burst_mode_get,
        .tx_burst_mode_get = dpaa2_dev_tx_burst_mode_get,
-       .rx_queue_count       = dpaa2_dev_rx_queue_count,
        .flow_ctrl_get        = dpaa2_flow_ctrl_get,
        .flow_ctrl_set        = dpaa2_flow_ctrl_set,
        .mac_addr_add         = dpaa2_dev_add_mac_addr,
@@ -2486,6 +2485,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
                 * plugged.
                 */
                eth_dev->dev_ops = &dpaa2_ethdev_ops;
+               eth_dev->rx_queue_count = dpaa2_dev_rx_queue_count;
                if (dpaa2_get_devargs(dev->devargs, DRIVER_LOOPBACK_MODE))
                        eth_dev->rx_pkt_burst = dpaa2_dev_loopback_rx;
                else if (dpaa2_get_devargs(dev->devargs,
index 902b1cdca07463d7b60c2722af1b26fe1b11ea42..82766da882cf395ee065be91d97ef2780e791292 100644 (file)
@@ -176,10 +176,6 @@ static const struct eth_dev_ops eth_em_ops = {
        .vlan_offload_set     = eth_em_vlan_offload_set,
        .rx_queue_setup       = eth_em_rx_queue_setup,
        .rx_queue_release     = eth_em_rx_queue_release,
-       .rx_queue_count       = eth_em_rx_queue_count,
-       .rx_descriptor_done   = eth_em_rx_descriptor_done,
-       .rx_descriptor_status = eth_em_rx_descriptor_status,
-       .tx_descriptor_status = eth_em_tx_descriptor_status,
        .tx_queue_setup       = eth_em_tx_queue_setup,
        .tx_queue_release     = eth_em_tx_queue_release,
        .rx_queue_intr_enable = eth_em_rx_queue_intr_enable,
@@ -250,6 +246,10 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
                E1000_DEV_PRIVATE_TO_VFTA(eth_dev->data->dev_private);
 
        eth_dev->dev_ops = &eth_em_ops;
+       eth_dev->rx_queue_count = eth_em_rx_queue_count;
+       eth_dev->rx_descriptor_done   = eth_em_rx_descriptor_done;
+       eth_dev->rx_descriptor_status = eth_em_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = eth_em_tx_descriptor_status;
        eth_dev->rx_pkt_burst = (eth_rx_burst_t)&eth_em_recv_pkts;
        eth_dev->tx_pkt_burst = (eth_tx_burst_t)&eth_em_xmit_pkts;
        eth_dev->tx_pkt_prepare = (eth_tx_prep_t)&eth_em_prep_pkts;
index a5551e8175e36034838c7c2028ea2490bd1a58fc..fe0cea88c25879868d1203b4b0118a2622926650 100644 (file)
@@ -380,10 +380,6 @@ static const struct eth_dev_ops eth_igb_ops = {
        .rx_queue_intr_enable = eth_igb_rx_queue_intr_enable,
        .rx_queue_intr_disable = eth_igb_rx_queue_intr_disable,
        .rx_queue_release     = eth_igb_rx_queue_release,
-       .rx_queue_count       = eth_igb_rx_queue_count,
-       .rx_descriptor_done   = eth_igb_rx_descriptor_done,
-       .rx_descriptor_status = eth_igb_rx_descriptor_status,
-       .tx_descriptor_status = eth_igb_tx_descriptor_status,
        .tx_queue_setup       = eth_igb_tx_queue_setup,
        .tx_queue_release     = eth_igb_tx_queue_release,
        .tx_done_cleanup      = eth_igb_tx_done_cleanup,
@@ -441,9 +437,6 @@ static const struct eth_dev_ops igbvf_eth_dev_ops = {
        .dev_supported_ptypes_get = eth_igb_supported_ptypes_get,
        .rx_queue_setup       = eth_igb_rx_queue_setup,
        .rx_queue_release     = eth_igb_rx_queue_release,
-       .rx_descriptor_done   = eth_igb_rx_descriptor_done,
-       .rx_descriptor_status = eth_igb_rx_descriptor_status,
-       .tx_descriptor_status = eth_igb_tx_descriptor_status,
        .tx_queue_setup       = eth_igb_tx_queue_setup,
        .tx_queue_release     = eth_igb_tx_queue_release,
        .tx_done_cleanup      = eth_igb_tx_done_cleanup,
@@ -754,6 +747,10 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev)
        uint32_t ctrl_ext;
 
        eth_dev->dev_ops = &eth_igb_ops;
+       eth_dev->rx_queue_count = eth_igb_rx_queue_count;
+       eth_dev->rx_descriptor_done   = eth_igb_rx_descriptor_done;
+       eth_dev->rx_descriptor_status = eth_igb_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = eth_igb_tx_descriptor_status;
        eth_dev->rx_pkt_burst = &eth_igb_recv_pkts;
        eth_dev->tx_pkt_burst = &eth_igb_xmit_pkts;
        eth_dev->tx_pkt_prepare = &eth_igb_prep_pkts;
@@ -949,6 +946,9 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
        PMD_INIT_FUNC_TRACE();
 
        eth_dev->dev_ops = &igbvf_eth_dev_ops;
+       eth_dev->rx_descriptor_done   = eth_igb_rx_descriptor_done;
+       eth_dev->rx_descriptor_status = eth_igb_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = eth_igb_tx_descriptor_status;
        eth_dev->rx_pkt_burst = &eth_igb_recv_pkts;
        eth_dev->tx_pkt_burst = &eth_igb_xmit_pkts;
        eth_dev->tx_pkt_prepare = &eth_igb_prep_pkts;
index ca75919ee235dcfa46519a1f4d76ae9e03f70d7d..2cffa3aa2dbc81a5e115b13de512bbc866a75c7c 100644 (file)
@@ -1141,8 +1141,6 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = {
        .tx_queue_stop        = enicpmd_dev_tx_queue_stop,
        .rx_queue_setup       = enicpmd_dev_rx_queue_setup,
        .rx_queue_release     = enicpmd_dev_rx_queue_release,
-       .rx_queue_count       = enicpmd_dev_rx_queue_count,
-       .rx_descriptor_done   = NULL,
        .tx_queue_setup       = enicpmd_dev_tx_queue_setup,
        .tx_queue_release     = enicpmd_dev_tx_queue_release,
        .rx_queue_intr_enable = enicpmd_dev_rx_queue_intr_enable,
@@ -1279,6 +1277,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
        ENICPMD_FUNC_TRACE();
 
        eth_dev->dev_ops = &enicpmd_eth_dev_ops;
+       eth_dev->rx_queue_count = enicpmd_dev_rx_queue_count;
        eth_dev->rx_pkt_burst = &enic_recv_pkts;
        eth_dev->tx_pkt_burst = &enic_xmit_pkts;
        eth_dev->tx_pkt_prepare = &enic_prep_pkts;
index fd927923da728fb73ec2e60b8092fbf53030d23b..e6043e1455ba8d25fc206d5c633843207f1fa3d7 100644 (file)
@@ -2855,10 +2855,6 @@ static const struct eth_dev_ops fm10k_eth_dev_ops = {
        .rx_queue_release       = fm10k_rx_queue_release,
        .tx_queue_setup         = fm10k_tx_queue_setup,
        .tx_queue_release       = fm10k_tx_queue_release,
-       .rx_queue_count         = fm10k_dev_rx_queue_count,
-       .rx_descriptor_done     = fm10k_dev_rx_descriptor_done,
-       .rx_descriptor_status = fm10k_dev_rx_descriptor_status,
-       .tx_descriptor_status = fm10k_dev_tx_descriptor_status,
        .rx_queue_intr_enable   = fm10k_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable  = fm10k_dev_rx_queue_intr_disable,
        .reta_update            = fm10k_reta_update,
@@ -3055,6 +3051,10 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev)
        PMD_INIT_FUNC_TRACE();
 
        dev->dev_ops = &fm10k_eth_dev_ops;
+       dev->rx_queue_count = fm10k_dev_rx_queue_count;
+       dev->rx_descriptor_done = fm10k_dev_rx_descriptor_done;
+       dev->rx_descriptor_status = fm10k_dev_rx_descriptor_status;
+       dev->tx_descriptor_status = fm10k_dev_tx_descriptor_status;
        dev->rx_pkt_burst = &fm10k_recv_pkts;
        dev->tx_pkt_burst = &fm10k_xmit_pkts;
        dev->tx_pkt_prepare = &fm10k_prep_pkts;
index 841447228a32dabb02f2bc3d8665bd16db9a15fc..80efd06cd96d61a964537dd2d82edcbb2bda483c 100644 (file)
@@ -474,10 +474,6 @@ static const struct eth_dev_ops i40e_eth_dev_ops = {
        .rx_queue_intr_enable         = i40e_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable        = i40e_dev_rx_queue_intr_disable,
        .rx_queue_release             = i40e_dev_rx_queue_release,
-       .rx_queue_count               = i40e_dev_rx_queue_count,
-       .rx_descriptor_done           = i40e_dev_rx_descriptor_done,
-       .rx_descriptor_status         = i40e_dev_rx_descriptor_status,
-       .tx_descriptor_status         = i40e_dev_tx_descriptor_status,
        .tx_queue_setup               = i40e_dev_tx_queue_setup,
        .tx_queue_release             = i40e_dev_tx_queue_release,
        .dev_led_on                   = i40e_dev_led_on,
@@ -1448,6 +1444,10 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
        PMD_INIT_FUNC_TRACE();
 
        dev->dev_ops = &i40e_eth_dev_ops;
+       dev->rx_queue_count = i40e_dev_rx_queue_count;
+       dev->rx_descriptor_done = i40e_dev_rx_descriptor_done;
+       dev->rx_descriptor_status = i40e_dev_rx_descriptor_status;
+       dev->tx_descriptor_status = i40e_dev_tx_descriptor_status;
        dev->rx_pkt_burst = i40e_recv_pkts;
        dev->tx_pkt_burst = i40e_xmit_pkts;
        dev->tx_pkt_prepare = i40e_prep_pkts;
index b755350cd2d9af026e473d45954e7a639d79f9c8..be4b28fa453a0fcba3d98198a11baa87ca4580a5 100644 (file)
@@ -199,12 +199,8 @@ static const struct eth_dev_ops i40evf_eth_dev_ops = {
        .rx_queue_release     = i40e_dev_rx_queue_release,
        .rx_queue_intr_enable = i40evf_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable = i40evf_dev_rx_queue_intr_disable,
-       .rx_descriptor_done   = i40e_dev_rx_descriptor_done,
-       .rx_descriptor_status = i40e_dev_rx_descriptor_status,
-       .tx_descriptor_status = i40e_dev_tx_descriptor_status,
        .tx_queue_setup       = i40e_dev_tx_queue_setup,
        .tx_queue_release     = i40e_dev_tx_queue_release,
-       .rx_queue_count       = i40e_dev_rx_queue_count,
        .rxq_info_get         = i40e_rxq_info_get,
        .txq_info_get         = i40e_txq_info_get,
        .mac_addr_add         = i40evf_add_mac_addr,
@@ -1561,6 +1557,10 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
 
        /* assign ops func pointer */
        eth_dev->dev_ops = &i40evf_eth_dev_ops;
+       eth_dev->rx_queue_count       = i40e_dev_rx_queue_count;
+       eth_dev->rx_descriptor_done   = i40e_dev_rx_descriptor_done;
+       eth_dev->rx_descriptor_status = i40e_dev_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = i40e_dev_tx_descriptor_status;
        eth_dev->rx_pkt_burst = &i40e_recv_pkts;
        eth_dev->tx_pkt_burst = &i40e_xmit_pkts;
 
index 8e1d8a8d3e92c7f3330204af7648ff4e54dc7473..e1ff38e8be52bb2361f76cb29b5895fb5b4f56dd 100644 (file)
@@ -117,9 +117,6 @@ static const struct eth_dev_ops iavf_eth_dev_ops = {
        .rss_hash_conf_get          = iavf_dev_rss_hash_conf_get,
        .rxq_info_get               = iavf_dev_rxq_info_get,
        .txq_info_get               = iavf_dev_txq_info_get,
-       .rx_queue_count             = iavf_dev_rxq_count,
-       .rx_descriptor_status       = iavf_dev_rx_desc_status,
-       .tx_descriptor_status       = iavf_dev_tx_desc_status,
        .mtu_set                    = iavf_dev_mtu_set,
        .rx_queue_intr_enable       = iavf_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable      = iavf_dev_rx_queue_intr_disable,
@@ -1383,6 +1380,9 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
 
        /* assign ops func pointer */
        eth_dev->dev_ops = &iavf_eth_dev_ops;
+       eth_dev->rx_queue_count = iavf_dev_rxq_count;
+       eth_dev->rx_descriptor_status = iavf_dev_rx_desc_status;
+       eth_dev->tx_descriptor_status = iavf_dev_tx_desc_status;
        eth_dev->rx_pkt_burst = &iavf_recv_pkts;
        eth_dev->tx_pkt_burst = &iavf_xmit_pkts;
        eth_dev->tx_pkt_prepare = &iavf_prep_pkts;
index c5dac2e3284d2e20bdeaac1b36b3fcdf89694535..c8b16c7f875c450928b2fcfb264de865fb60a18a 100644 (file)
@@ -205,9 +205,6 @@ static const struct eth_dev_ops ice_eth_dev_ops = {
        .tx_burst_mode_get            = ice_tx_burst_mode_get,
        .get_eeprom_length            = ice_get_eeprom_length,
        .get_eeprom                   = ice_get_eeprom,
-       .rx_queue_count               = ice_rx_queue_count,
-       .rx_descriptor_status         = ice_rx_descriptor_status,
-       .tx_descriptor_status         = ice_tx_descriptor_status,
        .stats_get                    = ice_stats_get,
        .stats_reset                  = ice_stats_reset,
        .xstats_get                   = ice_xstats_get,
@@ -2163,6 +2160,9 @@ ice_dev_init(struct rte_eth_dev *dev)
        int ret;
 
        dev->dev_ops = &ice_eth_dev_ops;
+       dev->rx_queue_count = ice_rx_queue_count;
+       dev->rx_descriptor_status = ice_rx_descriptor_status;
+       dev->tx_descriptor_status = ice_tx_descriptor_status;
        dev->rx_pkt_burst = ice_recv_pkts;
        dev->tx_pkt_burst = ice_xmit_pkts;
        dev->tx_pkt_prepare = ice_prep_pkts;
index 6ab3ee909d1bb28015555437e1998be8abd6b668..aa37c118613c69405eda04d2585c261826966c26 100644 (file)
@@ -272,10 +272,6 @@ static const struct eth_dev_ops eth_igc_ops = {
 
        .rx_queue_setup         = eth_igc_rx_queue_setup,
        .rx_queue_release       = eth_igc_rx_queue_release,
-       .rx_queue_count         = eth_igc_rx_queue_count,
-       .rx_descriptor_done     = eth_igc_rx_descriptor_done,
-       .rx_descriptor_status   = eth_igc_rx_descriptor_status,
-       .tx_descriptor_status   = eth_igc_tx_descriptor_status,
        .tx_queue_setup         = eth_igc_tx_queue_setup,
        .tx_queue_release       = eth_igc_tx_queue_release,
        .tx_done_cleanup        = eth_igc_tx_done_cleanup,
@@ -1227,6 +1223,10 @@ eth_igc_dev_init(struct rte_eth_dev *dev)
 
        PMD_INIT_FUNC_TRACE();
        dev->dev_ops = &eth_igc_ops;
+       dev->rx_descriptor_done = eth_igc_rx_descriptor_done;
+       dev->rx_queue_count = eth_igc_rx_queue_count;
+       dev->rx_descriptor_status = eth_igc_rx_descriptor_status;
+       dev->tx_descriptor_status = eth_igc_tx_descriptor_status;
 
        /*
         * for secondary processes, we don't initialize any further as primary
index d9582473a406922b3c4a35f2c8a32a26191b8adf..337ce90fbf6377f2f393fecc237bb9aa12d63520 100644 (file)
@@ -545,10 +545,6 @@ static const struct eth_dev_ops ixgbe_eth_dev_ops = {
        .rx_queue_intr_enable = ixgbe_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable = ixgbe_dev_rx_queue_intr_disable,
        .rx_queue_release     = ixgbe_dev_rx_queue_release,
-       .rx_queue_count       = ixgbe_dev_rx_queue_count,
-       .rx_descriptor_done   = ixgbe_dev_rx_descriptor_done,
-       .rx_descriptor_status = ixgbe_dev_rx_descriptor_status,
-       .tx_descriptor_status = ixgbe_dev_tx_descriptor_status,
        .tx_queue_setup       = ixgbe_dev_tx_queue_setup,
        .tx_queue_release     = ixgbe_dev_tx_queue_release,
        .dev_led_on           = ixgbe_dev_led_on,
@@ -622,9 +618,6 @@ static const struct eth_dev_ops ixgbevf_eth_dev_ops = {
        .vlan_offload_set     = ixgbevf_vlan_offload_set,
        .rx_queue_setup       = ixgbe_dev_rx_queue_setup,
        .rx_queue_release     = ixgbe_dev_rx_queue_release,
-       .rx_descriptor_done   = ixgbe_dev_rx_descriptor_done,
-       .rx_descriptor_status = ixgbe_dev_rx_descriptor_status,
-       .tx_descriptor_status = ixgbe_dev_tx_descriptor_status,
        .tx_queue_setup       = ixgbe_dev_tx_queue_setup,
        .tx_queue_release     = ixgbe_dev_tx_queue_release,
        .rx_queue_intr_enable = ixgbevf_dev_rx_queue_intr_enable,
@@ -1091,6 +1084,10 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
        ixgbe_dev_macsec_setting_reset(eth_dev);
 
        eth_dev->dev_ops = &ixgbe_eth_dev_ops;
+       eth_dev->rx_queue_count       = ixgbe_dev_rx_queue_count;
+       eth_dev->rx_descriptor_done   = ixgbe_dev_rx_descriptor_done;
+       eth_dev->rx_descriptor_status = ixgbe_dev_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = ixgbe_dev_tx_descriptor_status;
        eth_dev->rx_pkt_burst = &ixgbe_recv_pkts;
        eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts;
        eth_dev->tx_pkt_prepare = &ixgbe_prep_pkts;
@@ -1570,6 +1567,9 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
        PMD_INIT_FUNC_TRACE();
 
        eth_dev->dev_ops = &ixgbevf_eth_dev_ops;
+       eth_dev->rx_descriptor_done   = ixgbe_dev_rx_descriptor_done;
+       eth_dev->rx_descriptor_status = ixgbe_dev_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = ixgbe_dev_tx_descriptor_status;
        eth_dev->rx_pkt_burst = &ixgbe_recv_pkts;
        eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts;
 
index ae871fe1e8ba76bcd14c5d2ec3281c9760ea9d19..41db75e01071e793c9ac81ee7a21cfe6581e98fe 100644 (file)
@@ -602,6 +602,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
                }
                eth_dev->device = dpdk_dev;
                eth_dev->dev_ops = &mlx5_os_dev_sec_ops;
+               eth_dev->rx_descriptor_status = mlx5_rx_descriptor_status;
+               eth_dev->tx_descriptor_status = mlx5_tx_descriptor_status;
                err = mlx5_proc_priv_init(eth_dev);
                if (err)
                        return NULL;
@@ -1209,6 +1211,9 @@ err_secondary:
        eth_dev->rx_pkt_burst = removed_rx_burst;
        eth_dev->tx_pkt_burst = removed_tx_burst;
        eth_dev->dev_ops = &mlx5_os_dev_ops;
+       eth_dev->rx_descriptor_status = mlx5_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = mlx5_tx_descriptor_status;
+       eth_dev->rx_queue_count = mlx5_rx_queue_count;
        /* Register MAC address. */
        claim_zero(mlx5_mac_addr_add(eth_dev, &mac, 0, 0));
        if (config->vf && config->vf_nl_en)
@@ -2406,13 +2411,10 @@ const struct eth_dev_ops mlx5_os_dev_ops = {
        .rss_hash_update = mlx5_rss_hash_update,
        .rss_hash_conf_get = mlx5_rss_hash_conf_get,
        .filter_ctrl = mlx5_dev_filter_ctrl,
-       .rx_descriptor_status = mlx5_rx_descriptor_status,
-       .tx_descriptor_status = mlx5_tx_descriptor_status,
        .rxq_info_get = mlx5_rxq_info_get,
        .txq_info_get = mlx5_txq_info_get,
        .rx_burst_mode_get = mlx5_rx_burst_mode_get,
        .tx_burst_mode_get = mlx5_tx_burst_mode_get,
-       .rx_queue_count = mlx5_rx_queue_count,
        .rx_queue_intr_enable = mlx5_rx_intr_enable,
        .rx_queue_intr_disable = mlx5_rx_intr_disable,
        .is_removed = mlx5_is_removed,
@@ -2437,8 +2439,6 @@ const struct eth_dev_ops mlx5_os_dev_sec_ops = {
        .rx_queue_stop = mlx5_rx_queue_stop,
        .tx_queue_start = mlx5_tx_queue_start,
        .tx_queue_stop = mlx5_tx_queue_stop,
-       .rx_descriptor_status = mlx5_rx_descriptor_status,
-       .tx_descriptor_status = mlx5_tx_descriptor_status,
        .rxq_info_get = mlx5_rxq_info_get,
        .txq_info_get = mlx5_txq_info_get,
        .rx_burst_mode_get = mlx5_rx_burst_mode_get,
@@ -2490,8 +2490,6 @@ const struct eth_dev_ops mlx5_os_dev_ops_isolate = {
        .vlan_strip_queue_set = mlx5_vlan_strip_queue_set,
        .vlan_offload_set = mlx5_vlan_offload_set,
        .filter_ctrl = mlx5_dev_filter_ctrl,
-       .rx_descriptor_status = mlx5_rx_descriptor_status,
-       .tx_descriptor_status = mlx5_tx_descriptor_status,
        .rxq_info_get = mlx5_rxq_info_get,
        .txq_info_get = mlx5_txq_info_get,
        .rx_burst_mode_get = mlx5_rx_burst_mode_get,
index 9aad24e7ec7d0eb12d2dcdf1455bf37561327c0e..972b99ac761649c5a8533f4fcde3ce5ac8968365 100644 (file)
@@ -5131,6 +5131,10 @@ mlx5_flow_isolate(struct rte_eth_dev *dev,
                dev->dev_ops = &mlx5_os_dev_ops_isolate;
        else
                dev->dev_ops = &mlx5_os_dev_ops;
+
+       dev->rx_descriptor_status = mlx5_rx_descriptor_status;
+       dev->tx_descriptor_status = mlx5_tx_descriptor_status;
+
        return 0;
 }
 
index fd91c0e491a88407953f6734c815b5606ede725f..229c1b9149500a8fb0b2f909002560bc795907a0 100644 (file)
@@ -871,11 +871,8 @@ static const struct eth_dev_ops hn_eth_dev_ops = {
        .tx_queue_setup         = hn_dev_tx_queue_setup,
        .tx_queue_release       = hn_dev_tx_queue_release,
        .tx_done_cleanup        = hn_dev_tx_done_cleanup,
-       .tx_descriptor_status   = hn_dev_tx_descriptor_status,
        .rx_queue_setup         = hn_dev_rx_queue_setup,
        .rx_queue_release       = hn_dev_rx_queue_release,
-       .rx_queue_count         = hn_dev_rx_queue_count,
-       .rx_descriptor_status   = hn_dev_rx_queue_status,
        .link_update            = hn_dev_link_update,
        .stats_get              = hn_dev_stats_get,
        .stats_reset            = hn_dev_stats_reset,
@@ -936,6 +933,9 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
 
        vmbus = container_of(device, struct rte_vmbus_device, device);
        eth_dev->dev_ops = &hn_eth_dev_ops;
+       eth_dev->rx_queue_count = hn_dev_rx_queue_count;
+       eth_dev->rx_descriptor_status = hn_dev_rx_queue_status;
+       eth_dev->tx_descriptor_status = hn_dev_tx_descriptor_status;
        eth_dev->tx_pkt_burst = &hn_xmit_pkts;
        eth_dev->rx_pkt_burst = &hn_recv_pkts;
 
index 1cf949a9ab299609c19e80e23813b1bb8cff8f4e..d6080038b6de8e25351ec5e710821c09e1bac436 100644 (file)
@@ -2701,7 +2701,6 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = {
        .rss_hash_conf_get      = nfp_net_rss_hash_conf_get,
        .rx_queue_setup         = nfp_net_rx_queue_setup,
        .rx_queue_release       = nfp_net_rx_queue_release,
-       .rx_queue_count         = nfp_net_rx_queue_count,
        .tx_queue_setup         = nfp_net_tx_queue_setup,
        .tx_queue_release       = nfp_net_tx_queue_release,
        .rx_queue_intr_enable   = nfp_rx_queue_intr_enable,
@@ -2785,6 +2784,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
        }
 
        eth_dev->dev_ops = &nfp_net_eth_dev_ops;
+       eth_dev->rx_queue_count = nfp_net_rx_queue_count;
        eth_dev->rx_pkt_burst = &nfp_net_recv_pkts;
        eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts;
 
index 33b72bd4db51db0bb0ee0b74807f4fb5d6113b9f..c06e32f26b2a070760dd68b1d76cc9ebd7802632 100644 (file)
@@ -2272,10 +2272,6 @@ static const struct eth_dev_ops otx2_eth_dev_ops = {
        .txq_info_get             = otx2_nix_txq_info_get,
        .rx_burst_mode_get        = otx2_rx_burst_mode_get,
        .tx_burst_mode_get        = otx2_tx_burst_mode_get,
-       .rx_queue_count           = otx2_nix_rx_queue_count,
-       .rx_descriptor_done       = otx2_nix_rx_descriptor_done,
-       .rx_descriptor_status     = otx2_nix_rx_descriptor_status,
-       .tx_descriptor_status     = otx2_nix_tx_descriptor_status,
        .tx_done_cleanup          = otx2_nix_tx_done_cleanup,
        .set_queue_rate_limit     = otx2_nix_tm_set_queue_rate_limit,
        .pool_ops_supported       = otx2_nix_pool_ops_supported,
@@ -2382,6 +2378,10 @@ otx2_eth_dev_init(struct rte_eth_dev *eth_dev)
        int rc, max_entries;
 
        eth_dev->dev_ops = &otx2_eth_dev_ops;
+       eth_dev->rx_descriptor_done = otx2_nix_rx_descriptor_done;
+       eth_dev->rx_queue_count = otx2_nix_rx_queue_count;
+       eth_dev->rx_descriptor_status = otx2_nix_rx_descriptor_status;
+       eth_dev->tx_descriptor_status = otx2_nix_tx_descriptor_status;
 
        /* For secondary processes, the primary has done all the work */
        if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
index 70d48e48efe6efbadb009a32f069c4c0c865ebc7..59f1746ee92c066e12ed5ccafc6d628c67af4904 100644 (file)
@@ -2386,7 +2386,6 @@ static const struct eth_dev_ops qede_eth_dev_ops = {
        .dev_infos_get = qede_dev_info_get,
        .rx_queue_setup = qede_rx_queue_setup,
        .rx_queue_release = qede_rx_queue_release,
-       .rx_descriptor_status = qede_rx_descriptor_status,
        .tx_queue_setup = qede_tx_queue_setup,
        .tx_queue_release = qede_tx_queue_release,
        .dev_start = qede_dev_start,
@@ -2431,7 +2430,6 @@ static const struct eth_dev_ops qede_eth_vf_dev_ops = {
        .dev_infos_get = qede_dev_info_get,
        .rx_queue_setup = qede_rx_queue_setup,
        .rx_queue_release = qede_rx_queue_release,
-       .rx_descriptor_status = qede_rx_descriptor_status,
        .tx_queue_setup = qede_tx_queue_setup,
        .tx_queue_release = qede_tx_queue_release,
        .dev_start = qede_dev_start,
@@ -2670,6 +2668,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)
        }
 
        eth_dev->dev_ops = (is_vf) ? &qede_eth_vf_dev_ops : &qede_eth_dev_ops;
+       eth_dev->rx_descriptor_status = qede_rx_descriptor_status;
 
        adapter->num_tx_queues = 0;
        adapter->num_rx_queues = 0;
index acee3e48e4b13e0b952b621e7373440723125114..1a58e0df848cf49455a0f35dc1a9ad91b1d4142b 100644 (file)
@@ -1819,10 +1819,6 @@ static const struct eth_dev_ops sfc_eth_dev_ops = {
        .tx_queue_stop                  = sfc_tx_queue_stop,
        .rx_queue_setup                 = sfc_rx_queue_setup,
        .rx_queue_release               = sfc_rx_queue_release,
-       .rx_queue_count                 = sfc_rx_queue_count,
-       .rx_descriptor_done             = sfc_rx_descriptor_done,
-       .rx_descriptor_status           = sfc_rx_descriptor_status,
-       .tx_descriptor_status           = sfc_tx_descriptor_status,
        .rx_queue_intr_enable           = sfc_rx_queue_intr_enable,
        .rx_queue_intr_disable          = sfc_rx_queue_intr_disable,
        .tx_queue_setup                 = sfc_tx_queue_setup,
@@ -1977,6 +1973,10 @@ sfc_eth_dev_set_ops(struct rte_eth_dev *dev)
        dev->tx_pkt_prepare = dp_tx->pkt_prepare;
        dev->tx_pkt_burst = dp_tx->pkt_burst;
 
+       dev->rx_queue_count = sfc_rx_queue_count;
+       dev->rx_descriptor_done = sfc_rx_descriptor_done;
+       dev->rx_descriptor_status = sfc_rx_descriptor_status;
+       dev->tx_descriptor_status = sfc_tx_descriptor_status;
        dev->dev_ops = &sfc_eth_dev_ops;
 
        return 0;
@@ -2017,10 +2017,6 @@ sfc_eth_dev_clear_ops(struct rte_eth_dev *dev)
 
 static const struct eth_dev_ops sfc_eth_dev_secondary_ops = {
        .dev_supported_ptypes_get       = sfc_dev_supported_ptypes_get,
-       .rx_queue_count                 = sfc_rx_queue_count,
-       .rx_descriptor_done             = sfc_rx_descriptor_done,
-       .rx_descriptor_status           = sfc_rx_descriptor_status,
-       .tx_descriptor_status           = sfc_tx_descriptor_status,
        .reta_query                     = sfc_dev_rss_reta_query,
        .rss_hash_conf_get              = sfc_dev_rss_hash_conf_get,
        .rxq_info_get                   = sfc_rx_queue_info_get,
@@ -2085,6 +2081,10 @@ sfc_eth_dev_secondary_init(struct rte_eth_dev *dev, uint32_t logtype_main)
        dev->rx_pkt_burst = dp_rx->pkt_burst;
        dev->tx_pkt_prepare = dp_tx->pkt_prepare;
        dev->tx_pkt_burst = dp_tx->pkt_burst;
+       dev->rx_queue_count = sfc_rx_queue_count;
+       dev->rx_descriptor_done = sfc_rx_descriptor_done;
+       dev->rx_descriptor_status = sfc_rx_descriptor_status;
+       dev->tx_descriptor_status = sfc_tx_descriptor_status;
        dev->dev_ops = &sfc_eth_dev_secondary_ops;
 
        return 0;
index d955a7ee23fa04c5820fe846683820c1912af9f4..959c8e4ddc865db2a54135999928637227b7e18b 100644 (file)
@@ -2029,7 +2029,6 @@ static const struct eth_dev_ops nicvf_eth_dev_ops = {
        .tx_queue_stop            = nicvf_dev_tx_queue_stop,
        .rx_queue_setup           = nicvf_dev_rx_queue_setup,
        .rx_queue_release         = nicvf_dev_rx_queue_release,
-       .rx_queue_count           = nicvf_dev_rx_queue_count,
        .tx_queue_setup           = nicvf_dev_tx_queue_setup,
        .tx_queue_release         = nicvf_dev_tx_queue_release,
        .dev_set_link_up          = nicvf_dev_set_link_up,
@@ -2134,6 +2133,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
        PMD_INIT_FUNC_TRACE();
 
        eth_dev->dev_ops = &nicvf_eth_dev_ops;
+       eth_dev->rx_queue_count = nicvf_dev_rx_queue_count;
 
        /* For secondary processes, the primary has done all the work */
        if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
index e55278af696047359fcef7c7eb182dd2d2f5089f..fa365605ef8a26547948418c1f102a1136f700d4 100644 (file)
@@ -1385,7 +1385,6 @@ static const struct eth_dev_ops ops = {
        .rx_queue_release = eth_queue_release,
        .tx_queue_release = eth_queue_release,
        .tx_done_cleanup = eth_tx_done_cleanup,
-       .rx_queue_count = eth_rx_queue_count,
        .link_update = eth_link_update,
        .stats_get = eth_stats_get,
        .stats_reset = eth_stats_reset,
@@ -1447,6 +1446,7 @@ eth_dev_vhost_create(struct rte_vdev_device *dev, char *iface_name,
        data->all_multicast = 1;
 
        eth_dev->dev_ops = &ops;
+       eth_dev->rx_queue_count = eth_rx_queue_count;
 
        /* finally assign rx and tx ops */
        eth_dev->rx_pkt_burst = eth_vhost_rx;
index dc0093bdf05fe1ea523e1631e77e9700ecfe4888..4f2fa0d943bff5c898313b03762b49c8a83021a2 100644 (file)
@@ -920,7 +920,6 @@ static const struct eth_dev_ops virtio_eth_dev_ops = {
        .rx_queue_intr_enable    = virtio_dev_rx_queue_intr_enable,
        .rx_queue_intr_disable   = virtio_dev_rx_queue_intr_disable,
        .rx_queue_release        = virtio_dev_queue_release,
-       .rx_descriptor_done      = virtio_dev_rx_queue_done,
        .tx_queue_setup          = virtio_dev_tx_queue_setup,
        .tx_queue_release        = virtio_dev_queue_release,
        /* collect stats per queue */
@@ -1903,6 +1902,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
        }
 
        eth_dev->dev_ops = &virtio_eth_dev_ops;
+       eth_dev->rx_descriptor_done = virtio_dev_rx_queue_done;
 
        if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
                if (!hw->virtio_user_dev) {
index eb6cd01f8dc550868bec6439fa6f84fe1c62c722..b6f26a513bf709c14794794d9f7a5e018be872e9 100644 (file)
@@ -4545,11 +4545,11 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id)
 
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
        dev = &rte_eth_devices[port_id];
-       RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_queue_count, -ENOTSUP);
+       RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_queue_count, -ENOTSUP);
        if (queue_id >= dev->data->nb_rx_queues)
                return -EINVAL;
 
-       return (int)(*dev->dev_ops->rx_queue_count)(dev, queue_id);
+       return (int)(*dev->rx_queue_count)(dev, queue_id);
 }
 
 /**
@@ -4573,9 +4573,8 @@ rte_eth_rx_descriptor_done(uint16_t port_id, uint16_t queue_id, uint16_t offset)
 {
        struct rte_eth_dev *dev = &rte_eth_devices[port_id];
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
-       RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_descriptor_done, -ENOTSUP);
-       return (*dev->dev_ops->rx_descriptor_done)( \
-               dev->data->rx_queues[queue_id], offset);
+       RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_descriptor_done, -ENOTSUP);
+       return (*dev->rx_descriptor_done)(dev->data->rx_queues[queue_id], offset);
 }
 
 #define RTE_ETH_RX_DESC_AVAIL    0 /**< Desc available for hw. */
@@ -4630,10 +4629,10 @@ rte_eth_rx_descriptor_status(uint16_t port_id, uint16_t queue_id,
        if (queue_id >= dev->data->nb_rx_queues)
                return -ENODEV;
 #endif
-       RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_descriptor_status, -ENOTSUP);
+       RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_descriptor_status, -ENOTSUP);
        rxq = dev->data->rx_queues[queue_id];
 
-       return (*dev->dev_ops->rx_descriptor_status)(rxq, offset);
+       return (*dev->rx_descriptor_status)(rxq, offset);
 }
 
 #define RTE_ETH_TX_DESC_FULL    0 /**< Desc filled for hw, waiting xmit. */
@@ -4687,10 +4686,10 @@ static inline int rte_eth_tx_descriptor_status(uint16_t port_id,
        if (queue_id >= dev->data->nb_tx_queues)
                return -ENODEV;
 #endif
-       RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->tx_descriptor_status, -ENOTSUP);
+       RTE_FUNC_PTR_OR_ERR_RET(*dev->tx_descriptor_status, -ENOTSUP);
        txq = dev->data->tx_queues[queue_id];
 
-       return (*dev->dev_ops->tx_descriptor_status)(txq, offset);
+       return (*dev->tx_descriptor_status)(txq, offset);
 }
 
 /**
index 78c79028973b7b72e1d6d7cfb72320a8e74980f6..1ffcb880b7bdbe323e7332329112e8d6ba575b07 100644 (file)
@@ -660,13 +660,6 @@ struct eth_dev_ops {
        eth_queue_stop_t           tx_queue_stop; /**< Stop TX for a queue. */
        eth_rx_queue_setup_t       rx_queue_setup;/**< Set up device RX queue. */
        eth_queue_release_t        rx_queue_release; /**< Release RX queue. */
-       eth_rx_queue_count_t       rx_queue_count;
-       /**< Get the number of used RX descriptors. */
-       eth_rx_descriptor_done_t   rx_descriptor_done; /**< Check rxd DD bit. */
-       eth_rx_descriptor_status_t rx_descriptor_status;
-       /**< Check the status of a Rx descriptor. */
-       eth_tx_descriptor_status_t tx_descriptor_status;
-       /**< Check the status of a Tx descriptor. */
        /*
         * Static inline functions use functions ABOVE this comment.
         * New dev_ops functions should be added BELOW to avoid breaking ABI.
@@ -782,6 +775,12 @@ struct rte_eth_dev {
        eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function. */
        eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function. */
        eth_tx_prep_t tx_pkt_prepare; /**< Pointer to PMD transmit prepare function. */
+
+       eth_rx_queue_count_t       rx_queue_count; /**< Get the number of used RX descriptors. */
+       eth_rx_descriptor_done_t   rx_descriptor_done;   /**< Check rxd DD bit. */
+       eth_rx_descriptor_status_t rx_descriptor_status; /**< Check the status of a Rx descriptor. */
+       eth_tx_descriptor_status_t tx_descriptor_status; /**< Check the status of a Tx descriptor. */
+
        /**
         * Next two fields are per-device data but *data is shared between
         * primary and secondary processes and *process_private is per-process