The RTE_TAILQ_HEAD, RTE_TAILQ_ENTRY, RTE_TAILQ_FOREACH, RTE_TAILQ_FIRST,
RTE_TAILQ_NEXT, RTE_TAILQ_FOREACH_SAFE, RTE_STAILQ_HEAD and
RTE_STAILQ_ENTRY were added to help the port to Windows.

Now that rte_queue.h provides the same macros on all platforms, they are
no longer necessary.  Keep them in rte_tailq.h as deprecated aliases and
add a deprecation notice for removal in 27.11.

The wrappers are defined in terms of the plain macros only, never the
extended ones, so that they keep working in a translation unit where a
system <sys/queue.h> was included first and rte_queue.h was therefore
suppressed.  That is why RTE_TAILQ_FOREACH_SAFE is open coded rather
than mapped to TAILQ_FOREACH_SAFE, which glibc does not have.

Document why rte_queue.h wins the include guard inside DPDK, and note it
in rte_os.h.

Signed-off-by: Stephen Hemminger <[email protected]>
---
 doc/guides/rel_notes/deprecation.rst         |  8 +++++
 doc/guides/rel_notes/release_26_11.rst       |  8 +++++
 drivers/bus/vdev/vdev.c                      |  2 +-
 drivers/common/cnxk/roc_platform.h           |  2 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c           |  4 +--
 drivers/net/bonding/rte_eth_bond_flow.c      |  2 +-
 drivers/net/cnxk/cnxk_eswitch_flow.c         |  2 +-
 drivers/net/cnxk/cnxk_ethdev.c               |  6 ++--
 drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c |  8 ++---
 drivers/net/failsafe/failsafe_flow.c         |  2 +-
 drivers/net/intel/cpfl/cpfl_flow.c           |  8 ++---
 drivers/net/intel/i40e/i40e_ethdev.c         | 10 +++---
 drivers/net/intel/i40e/i40e_flow.c           |  6 ++--
 drivers/net/intel/i40e/i40e_hash.c           |  2 +-
 drivers/net/intel/i40e/rte_pmd_i40e.c        |  6 ++--
 drivers/net/intel/iavf/iavf_generic_flow.c   | 16 ++++-----
 drivers/net/intel/ice/ice_ethdev.c           |  4 +--
 drivers/net/intel/ice/ice_generic_flow.c     |  8 ++---
 drivers/net/intel/ipn3ke/ipn3ke_flow.c       |  2 +-
 drivers/net/intel/ixgbe/ixgbe_flow.c         |  2 +-
 drivers/net/mlx5/mlx5_flow_dv.c              |  2 +-
 drivers/net/mlx5/mlx5_flow_meter.c           |  2 +-
 drivers/net/nbl/nbl_common/nbl_userdev.c     |  4 +--
 drivers/net/nfb/nfb_ethdev.c                 |  2 +-
 drivers/net/sfc/sfc_flow.c                   |  4 +--
 drivers/net/softnic/rte_eth_softnic_swq.c    |  2 +-
 drivers/net/sxe2/sxe2_dump.c                 |  6 ++--
 drivers/net/sxe2/sxe2_filter.c               | 22 ++++++------
 drivers/net/sxe2/sxe2_vsi.c                  |  2 +-
 drivers/net/zxdh/zxdh_flow.c                 |  2 +-
 drivers/net/zxdh/zxdh_mtr.c                  |  6 ++--
 examples/vm_power_manager/channel_manager.c  |  8 ++---
 lib/bbdev/rte_bbdev.h                        |  2 +-
 lib/cryptodev/cryptodev_pmd.h                |  2 +-
 lib/cryptodev/rte_cryptodev.h                |  2 +-
 lib/eal/common/eal_common_devargs.c          |  4 +--
 lib/eal/common/eal_common_options.c          |  2 +-
 lib/eal/common/eal_common_proc.c             |  2 +-
 lib/eal/freebsd/include/rte_os.h             | 12 ++-----
 lib/eal/include/bus_driver.h                 |  8 ++---
 lib/eal/include/dev_driver.h                 |  4 +--
 lib/eal/include/rte_class.h                  |  4 +--
 lib/eal/include/rte_devargs.h                |  2 +-
 lib/eal/include/rte_queue.h                  |  5 +++
 lib/eal/include/rte_tailq.h                  | 35 ++++++++++++++++----
 lib/eal/linux/include/rte_os.h               | 12 ++-----
 lib/eal/windows/include/rte_os.h             | 31 +++--------------
 lib/efd/rte_efd.c                            |  2 +-
 lib/ethdev/rte_ethdev_core.h                 |  2 +-
 lib/eventdev/rte_event_vector_adapter.c      |  2 +-
 lib/gpudev/gpudev.c                          |  4 +--
 lib/gpudev/gpudev_driver.h                   |  2 +-
 lib/ip_frag/ip_reassembly.h                  |  4 +--
 lib/ip_frag/rte_ip_frag_common.c             |  2 +-
 lib/mempool/rte_mempool.c                    |  4 +--
 lib/mempool/rte_mempool.h                    |  8 ++---
 lib/pmu/pmu.c                                |  2 +-
 lib/power/power_cpufreq.h                    |  2 +-
 lib/power/power_uncore_ops.h                 |  2 +-
 lib/power/rte_power_cpufreq.c                |  8 ++---
 lib/power/rte_power_uncore.c                 |  6 ++--
 lib/table/rte_swx_table.h                    |  4 +--
 lib/table/rte_swx_table_selector.h           |  4 +--
 lib/vhost/iotlb.c                            | 14 ++++----
 lib/vhost/vdpa.c                             |  2 +-
 lib/vhost/vdpa_driver.h                      |  2 +-
 66 files changed, 191 insertions(+), 182 deletions(-)

diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index 6ad7698c6b..8a9c4f2992 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -177,3 +177,11 @@ Deprecation Notices
   after a VF reset, but this is of questionable value
   since most applications expect their settings to be preserved
   transparently across a reset.
+
+* eal: The ``RTE_TAILQ_HEAD``, ``RTE_TAILQ_ENTRY``, ``RTE_TAILQ_FOREACH``,
+  ``RTE_TAILQ_FIRST``, ``RTE_TAILQ_NEXT``, ``RTE_TAILQ_FOREACH_SAFE``,
+  ``RTE_STAILQ_HEAD`` and ``RTE_STAILQ_ENTRY`` macros in ``rte_tailq.h``
+  are deprecated and will be removed in DPDK 27.11.
+  They existed only because Windows had no ``<sys/queue.h>``.
+  Use the equivalent ``TAILQ_`` and ``STAILQ_`` macros from
+  ``<rte_queue.h>``, which are now available on all platforms.
diff --git a/doc/guides/rel_notes/release_26_11.rst 
b/doc/guides/rel_notes/release_26_11.rst
index 0701fbee8d..892d55a7eb 100644
--- a/doc/guides/rel_notes/release_26_11.rst
+++ b/doc/guides/rel_notes/release_26_11.rst
@@ -130,6 +130,14 @@ API Changes
   * ``rte_tel_data_add_dict_uint_hex``
   * ``rte_telemetry_register_cmd_arg``
 
+* eal: Deprecated the ``RTE_TAILQ_HEAD``, ``RTE_TAILQ_ENTRY``,
+  ``RTE_TAILQ_FOREACH``, ``RTE_TAILQ_FIRST``, ``RTE_TAILQ_NEXT``,
+  ``RTE_TAILQ_FOREACH_SAFE``, ``RTE_STAILQ_HEAD`` and ``RTE_STAILQ_ENTRY``
+  macros.
+  They existed only because Windows had no ``<sys/queue.h>``.
+  Use the standard ``TAILQ_`` and ``STAILQ_`` macros from ``rte_queue.h``.
+  The macros are kept as aliases and will be removed in DPDK 27.11.
+
 
 ABI Changes
 -----------
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 04702a7270..4f30a295d5 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -103,7 +103,7 @@ rte_vdev_remove_custom_scan(rte_vdev_scan_callback 
callback, void *user_arg)
        struct vdev_custom_scan *custom_scan, *tmp_scan;
 
        rte_spinlock_lock(&vdev_custom_scan_lock);
-       RTE_TAILQ_FOREACH_SAFE(custom_scan, &vdev_custom_scans, next,
+       TAILQ_FOREACH_SAFE(custom_scan, &vdev_custom_scans, next,
                                tmp_scan) {
                if (custom_scan->callback != callback ||
                                (custom_scan->user_arg != (void *)-1 &&
diff --git a/drivers/common/cnxk/roc_platform.h 
b/drivers/common/cnxk/roc_platform.h
index 24f0c41cbf..5c9776ab61 100644
--- a/drivers/common/cnxk/roc_platform.h
+++ b/drivers/common/cnxk/roc_platform.h
@@ -66,7 +66,7 @@
 #define PLT_ALIGN_FLOOR                 RTE_ALIGN_FLOOR
 #define PLT_INIT                RTE_INIT
 #define PLT_MAX_ETHPORTS        RTE_MAX_ETHPORTS
-#define PLT_TAILQ_FOREACH_SAFE  RTE_TAILQ_FOREACH_SAFE
+#define PLT_TAILQ_FOREACH_SAFE  TAILQ_FOREACH_SAFE
 
 #ifndef PLT_ETHER_ADDR_LEN
 #define PLT_ETHER_ADDR_LEN RTE_ETHER_ADDR_LEN
diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c 
b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
index a75da8aa19..1721f97a38 100644
--- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
+++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c
@@ -649,7 +649,7 @@ bnxt_ulp_cntxt_list_del(struct bnxt_ulp_context *ulp_ctx)
        struct ulp_context_list_entry   *entry, *temp;
 
        rte_spinlock_lock(&bnxt_ulp_ctxt_lock);
-       RTE_TAILQ_FOREACH_SAFE(entry, &ulp_cntx_list, next, temp) {
+       TAILQ_FOREACH_SAFE(entry, &ulp_cntx_list, next, temp) {
                if (entry->ulp_ctx == ulp_ctx) {
                        TAILQ_REMOVE(&ulp_cntx_list, entry, next);
                        rte_free(entry);
@@ -666,7 +666,7 @@ bnxt_ulp_cntxt_list_count(void)
        int count_1 = 0;
 
        rte_spinlock_lock(&bnxt_ulp_ctxt_lock);
-       RTE_TAILQ_FOREACH_SAFE(entry, &ulp_cntx_list, next, temp) {
+       TAILQ_FOREACH_SAFE(entry, &ulp_cntx_list, next, temp) {
                count_1++;
        }
        rte_spinlock_unlock(&bnxt_ulp_ctxt_lock);
diff --git a/drivers/net/bonding/rte_eth_bond_flow.c 
b/drivers/net/bonding/rte_eth_bond_flow.c
index b2a7d397c3..9e267078b0 100644
--- a/drivers/net/bonding/rte_eth_bond_flow.c
+++ b/drivers/net/bonding/rte_eth_bond_flow.c
@@ -157,7 +157,7 @@ bond_flow_flush(struct rte_eth_dev *dev, struct 
rte_flow_error *err)
        /* Destroy all bond flows from its members instead of flushing them to
         * keep the LACP flow or any other external flows.
         */
-       RTE_TAILQ_FOREACH_SAFE(flow, &internals->flow_list, next, tmp) {
+       TAILQ_FOREACH_SAFE(flow, &internals->flow_list, next, tmp) {
                lret = bond_flow_destroy(dev, flow, err);
                if (unlikely(lret != 0))
                        ret = lret;
diff --git a/drivers/net/cnxk/cnxk_eswitch_flow.c 
b/drivers/net/cnxk/cnxk_eswitch_flow.c
index 06077bfe92..767b666e86 100644
--- a/drivers/net/cnxk/cnxk_eswitch_flow.c
+++ b/drivers/net/cnxk/cnxk_eswitch_flow.c
@@ -21,7 +21,7 @@ cnxk_eswitch_flow_rules_remove_list(struct cnxk_eswitch_dev 
*eswitch_dev, struct
        struct roc_npc_flow *flow, *tvar;
        int rc = 0;
 
-       RTE_TAILQ_FOREACH_SAFE(flow, list, next, tvar) {
+       TAILQ_FOREACH_SAFE(flow, list, next, tvar) {
                plt_esw_dbg("Removing flow %d", flow->mcam_id);
                rc = roc_eswitch_npc_mcam_delete_rule(&eswitch_dev->npc, flow,
                                                      hw_func);
diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c
index c41959173b..5317d48fd2 100644
--- a/drivers/net/cnxk/cnxk_ethdev.c
+++ b/drivers/net/cnxk/cnxk_ethdev.c
@@ -464,7 +464,7 @@ nix_meter_fini(struct cnxk_eth_dev *dev)
        uint32_t i;
        int rc = 0;
 
-       RTE_TAILQ_FOREACH_SAFE(mtr, fms, next, next_mtr) {
+       TAILQ_FOREACH_SAFE(mtr, fms, next, next_mtr) {
                for (i = 0; i < mtr->rq_num; i++) {
                        rq = &dev->rqs[mtr->rq_id[i]];
                        rc |= roc_nix_bpf_ena_dis(nix, mtr->bpf_id, rq, false);
@@ -512,7 +512,7 @@ nix_security_release(struct cnxk_eth_dev *dev)
        if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY || dev->ip_reass_en) 
{
                /* Destroy inbound sessions */
                tvar = NULL;
-               RTE_TAILQ_FOREACH_SAFE(eth_sec, &dev->inb.list, entry, tvar)
+               TAILQ_FOREACH_SAFE(eth_sec, &dev->inb.list, entry, tvar)
                        cnxk_eth_sec_ops.session_destroy(eth_dev,
                                                         eth_sec->sess);
 
@@ -534,7 +534,7 @@ nix_security_release(struct cnxk_eth_dev *dev)
            dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY) {
                /* Destroy outbound sessions */
                tvar = NULL;
-               RTE_TAILQ_FOREACH_SAFE(eth_sec, &dev->outb.list, entry, tvar)
+               TAILQ_FOREACH_SAFE(eth_sec, &dev->outb.list, entry, tvar)
                        cnxk_eth_sec_ops.session_destroy(eth_dev,
                                                         eth_sec->sess);
 
diff --git a/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c 
b/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c
index 0c1533e3d7..1104e0ec81 100644
--- a/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c
+++ b/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c
@@ -275,7 +275,7 @@ ethdev_sec_tel_handle_sa_info(const char *cmd __rte_unused, 
const char *params,
        i = 0;
        if (dev->tx_offloads & RTE_ETH_TX_OFFLOAD_SECURITY) {
                tvar = NULL;
-               RTE_TAILQ_FOREACH_SAFE(eth_sec, &dev->outb.list, entry, tvar) {
+               TAILQ_FOREACH_SAFE(eth_sec, &dev->outb.list, entry, tvar) {
                        if (eth_sec->sa_idx == sa_idx) {
                                rte_tel_data_add_dict_int(d, "outb_sa", 1);
                                if (roc_model_is_cn10k())
@@ -292,7 +292,7 @@ ethdev_sec_tel_handle_sa_info(const char *cmd __rte_unused, 
const char *params,
        i = 0;
        if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY) {
                tvar = NULL;
-               RTE_TAILQ_FOREACH_SAFE(eth_sec, &dev->inb.list, entry, tvar) {
+               TAILQ_FOREACH_SAFE(eth_sec, &dev->inb.list, entry, tvar) {
                        if (eth_sec->sa_idx == sa_idx) {
                                rte_tel_data_add_dict_int(d, "inb_sa", 1);
                                if (roc_model_is_cn10k())
@@ -353,7 +353,7 @@ ethdev_sec_tel_handle_info(const char *cmd __rte_unused, 
const char *params,
 
        if (dev->tx_offloads & RTE_ETH_TX_OFFLOAD_SECURITY) {
                tvar = NULL;
-               RTE_TAILQ_FOREACH_SAFE(eth_sec, &dev->outb.list, entry, tvar) {
+               TAILQ_FOREACH_SAFE(eth_sec, &dev->outb.list, entry, tvar) {
                        if (eth_sec->sa_idx < min_outb_sa)
                                min_outb_sa = eth_sec->sa_idx;
                        if (eth_sec->sa_idx > max_outb_sa)
@@ -370,7 +370,7 @@ ethdev_sec_tel_handle_info(const char *cmd __rte_unused, 
const char *params,
 
        if (dev->rx_offloads & RTE_ETH_RX_OFFLOAD_SECURITY) {
                tvar = NULL;
-               RTE_TAILQ_FOREACH_SAFE(eth_sec, &dev->inb.list, entry, tvar) {
+               TAILQ_FOREACH_SAFE(eth_sec, &dev->inb.list, entry, tvar) {
                        if (eth_sec->sa_idx < min_inb_sa)
                                min_inb_sa = eth_sec->sa_idx;
                        if (eth_sec->sa_idx > max_inb_sa)
diff --git a/drivers/net/failsafe/failsafe_flow.c 
b/drivers/net/failsafe/failsafe_flow.c
index 5baa11460f..7b54644e38 100644
--- a/drivers/net/failsafe/failsafe_flow.c
+++ b/drivers/net/failsafe/failsafe_flow.c
@@ -186,7 +186,7 @@ fs_flow_flush(struct rte_eth_dev *dev,
                        return ret;
                }
        }
-       RTE_TAILQ_FOREACH_SAFE(flow, &PRIV(dev)->flow_list, next, tmp) {
+       TAILQ_FOREACH_SAFE(flow, &PRIV(dev)->flow_list, next, tmp) {
                TAILQ_REMOVE(&PRIV(dev)->flow_list, flow, next);
                fs_flow_release(&flow);
        }
diff --git a/drivers/net/intel/cpfl/cpfl_flow.c 
b/drivers/net/intel/cpfl/cpfl_flow.c
index 3ba6c0f0e7..fd847d76b6 100644
--- a/drivers/net/intel/cpfl/cpfl_flow.c
+++ b/drivers/net/intel/cpfl/cpfl_flow.c
@@ -27,7 +27,7 @@ cpfl_flow_engine_match(struct rte_eth_dev *dev,
        struct cpfl_flow_engine *engine = NULL;
        void *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (!engine->parse_pattern_action)
                        continue;
 
@@ -46,7 +46,7 @@ cpfl_flow_engine_init(struct cpfl_adapter_ext *adapter)
        void *temp;
        int ret;
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (!engine->init) {
                        PMD_INIT_LOG(ERR, "Invalid engine type (%d)",
                                     engine->type);
@@ -70,7 +70,7 @@ cpfl_flow_engine_uninit(struct cpfl_adapter_ext *adapter)
        struct cpfl_flow_engine *engine = NULL;
        void *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (engine->uninit)
                        engine->uninit(adapter);
        }
@@ -244,7 +244,7 @@ cpfl_flow_flush(struct rte_eth_dev *dev,
        void *temp;
        int ret = 0;
 
-       RTE_TAILQ_FOREACH_SAFE(p_flow, &itf->flow_list, next, temp) {
+       TAILQ_FOREACH_SAFE(p_flow, &itf->flow_list, next, temp) {
                ret = cpfl_flow_destroy(dev, p_flow, error);
                if (ret) {
                        PMD_DRV_LOG(ERR, "Failed to flush flows");
diff --git a/drivers/net/intel/i40e/i40e_ethdev.c 
b/drivers/net/intel/i40e/i40e_ethdev.c
index b6b2d291ee..32a0f51973 100644
--- a/drivers/net/intel/i40e/i40e_ethdev.c
+++ b/drivers/net/intel/i40e/i40e_ethdev.c
@@ -4195,7 +4195,7 @@ i40e_vlan_offload_set(struct rte_eth_dev *dev, int mask)
                 * recommended to be used in firmware v8.6.
                 */
                /* Remove all existing mac */
-               RTE_TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
+               TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
                        mac_filter[i] = f->mac_info;
                        ret = i40e_vsi_delete_mac(vsi, &f->mac_info.mac_addr);
                        if (ret)
@@ -5570,7 +5570,7 @@ i40e_vsi_release(struct i40e_vsi *vsi)
 
        /* VSI has child to attach, release child first */
        if (vsi->veb) {
-               RTE_TAILQ_FOREACH_SAFE(vsi_list, &vsi->veb->head, list, temp) {
+               TAILQ_FOREACH_SAFE(vsi_list, &vsi->veb->head, list, temp) {
                        if (i40e_vsi_release(vsi_list->vsi) != I40E_SUCCESS)
                                return -1;
                }
@@ -5578,7 +5578,7 @@ i40e_vsi_release(struct i40e_vsi *vsi)
        }
 
        if (vsi->floating_veb) {
-               RTE_TAILQ_FOREACH_SAFE(vsi_list, &vsi->floating_veb->head,
+               TAILQ_FOREACH_SAFE(vsi_list, &vsi->floating_veb->head,
                        list, temp) {
                        if (i40e_vsi_release(vsi_list->vsi) != I40E_SUCCESS)
                                return -1;
@@ -5587,7 +5587,7 @@ i40e_vsi_release(struct i40e_vsi *vsi)
 
        /* Remove all macvlan filters of the VSI */
        i40e_vsi_remove_all_macvlan_filter(vsi);
-       RTE_TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp)
+       TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp)
                rte_free(f);
 
        if (vsi->type != I40E_VSI_MAIN &&
@@ -6230,7 +6230,7 @@ i40e_vsi_config_vlan_filter(struct i40e_vsi *vsi, bool on)
        i = 0;
 
        /* Remove all existing mac */
-       RTE_TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
+       TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
                mac_filter[i] = f->mac_info;
                ret = i40e_vsi_delete_mac(vsi, &f->mac_info.mac_addr);
                if (ret) {
diff --git a/drivers/net/intel/i40e/i40e_flow.c 
b/drivers/net/intel/i40e/i40e_flow.c
index 6cb5219a80..5eb31876aa 100644
--- a/drivers/net/intel/i40e/i40e_flow.c
+++ b/drivers/net/intel/i40e/i40e_flow.c
@@ -4216,7 +4216,7 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf)
                }
 
                /* Delete FDIR flows in flow list. */
-               RTE_TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, temp) {
+               TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, temp) {
                        if (flow->filter_type == RTE_ETH_FILTER_FDIR) {
                                TAILQ_REMOVE(&pf->flow_list, flow, node);
                        }
@@ -4271,7 +4271,7 @@ i40e_flow_flush_ethertype_filter(struct i40e_pf *pf)
        }
 
        /* Delete ethertype flows in flow list. */
-       RTE_TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, temp) {
+       TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, temp) {
                if (flow->filter_type == RTE_ETH_FILTER_ETHERTYPE) {
                        TAILQ_REMOVE(&pf->flow_list, flow, node);
                        rte_free(flow);
@@ -4299,7 +4299,7 @@ i40e_flow_flush_tunnel_filter(struct i40e_pf *pf)
        }
 
        /* Delete tunnel flows in flow list. */
-       RTE_TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, temp) {
+       TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, temp) {
                if (flow->filter_type == RTE_ETH_FILTER_TUNNEL) {
                        TAILQ_REMOVE(&pf->flow_list, flow, node);
                        rte_free(flow);
diff --git a/drivers/net/intel/i40e/i40e_hash.c 
b/drivers/net/intel/i40e/i40e_hash.c
index f24b7540f0..db8c4a9b17 100644
--- a/drivers/net/intel/i40e/i40e_hash.c
+++ b/drivers/net/intel/i40e/i40e_hash.c
@@ -1503,7 +1503,7 @@ i40e_hash_filter_flush(struct i40e_pf *pf)
 {
        struct rte_flow *flow, *next;
 
-       RTE_TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, next) {
+       TAILQ_FOREACH_SAFE(flow, &pf->flow_list, node, next) {
                if (flow->filter_type != RTE_ETH_FILTER_HASH)
                        continue;
 
diff --git a/drivers/net/intel/i40e/rte_pmd_i40e.c 
b/drivers/net/intel/i40e/rte_pmd_i40e.c
index 2e7943ef8b..dd1358ce7a 100644
--- a/drivers/net/intel/i40e/rte_pmd_i40e.c
+++ b/drivers/net/intel/i40e/rte_pmd_i40e.c
@@ -221,7 +221,7 @@ i40e_vsi_rm_mac_filter(struct i40e_vsi *vsi)
        void *temp;
 
        /* remove all the MACs */
-       RTE_TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
+       TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
                vlan_num = vsi->vlan_num;
                filter_type = f->mac_info.filter_type;
                if (filter_type == I40E_MACVLAN_PERFECT_MATCH ||
@@ -279,7 +279,7 @@ i40e_vsi_restore_mac_filter(struct i40e_vsi *vsi)
        void *temp;
 
        /* restore all the MACs */
-       RTE_TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
+       TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) {
                if (f->mac_info.filter_type == I40E_MACVLAN_PERFECT_MATCH ||
                    f->mac_info.filter_type == I40E_MACVLAN_HASH_MATCH) {
                        /**
@@ -572,7 +572,7 @@ rte_pmd_i40e_set_vf_mac_addr(uint16_t port, uint16_t vf_id,
        rte_ether_addr_copy(mac_addr, &vf->mac_addr);
 
        /* Remove all existing mac */
-       RTE_TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp)
+       TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp)
                if (i40e_vsi_delete_mac(vsi, &f->mac_info.mac_addr)
                                != I40E_SUCCESS)
                        PMD_DRV_LOG(WARNING, "Delete MAC failed");
diff --git a/drivers/net/intel/iavf/iavf_generic_flow.c 
b/drivers/net/intel/iavf/iavf_generic_flow.c
index 38c1261bd9..e45abb2928 100644
--- a/drivers/net/intel/iavf/iavf_generic_flow.c
+++ b/drivers/net/intel/iavf/iavf_generic_flow.c
@@ -1817,7 +1817,7 @@ iavf_flow_init(struct iavf_adapter *ad)
        TAILQ_INIT(&vf->ipsec_crypto_parser_list);
        rte_spinlock_init(&vf->flow_ops_lock);
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (engine->init == NULL) {
                        PMD_INIT_LOG(ERR, "Invalid engine type (%d)",
                                     engine->type);
@@ -1843,7 +1843,7 @@ iavf_flow_uninit(struct iavf_adapter *ad)
        struct iavf_flow_parser_node *p_parser;
        void *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (engine->uninit)
                        engine->uninit(ad);
        }
@@ -1895,7 +1895,7 @@ iavf_register_parser(struct iavf_flow_parser *parser,
                TAILQ_INSERT_TAIL(list, parser_node, node);
        } else if (parser->engine->type == IAVF_FLOW_ENGINE_FDIR) {
                list = &vf->dist_parser_list;
-               RTE_TAILQ_FOREACH_SAFE(existing_node, list, node, temp) {
+               TAILQ_FOREACH_SAFE(existing_node, list, node, temp) {
                        if (existing_node->parser->engine->type ==
                            IAVF_FLOW_ENGINE_FSUB) {
                                TAILQ_INSERT_AFTER(list, existing_node,
@@ -1939,7 +1939,7 @@ iavf_unregister_parser(struct iavf_flow_parser *parser,
        if (list == NULL)
                return;
 
-       RTE_TAILQ_FOREACH_SAFE(p_parser, list, node, temp) {
+       TAILQ_FOREACH_SAFE(p_parser, list, node, temp) {
                if (p_parser->parser->engine->type == parser->engine->type) {
                        TAILQ_REMOVE(list, p_parser, node);
                        rte_free(p_parser);
@@ -2085,7 +2085,7 @@ iavf_parse_engine_create(struct iavf_adapter *ad,
        void *temp;
        void *meta = NULL;
 
-       RTE_TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) {
+       TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) {
                if (parser_node->parser->parse_pattern_action(ad,
                                parser_node->parser->array,
                                parser_node->parser->array_len,
@@ -2115,7 +2115,7 @@ iavf_parse_engine_validate(struct iavf_adapter *ad,
        void *temp;
        void *meta = NULL;
 
-       RTE_TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) {
+       TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) {
                if (parser_node->parser->parse_pattern_action(ad,
                                parser_node->parser->array,
                                parser_node->parser->array_len,
@@ -2261,7 +2261,7 @@ iavf_flow_is_valid(struct rte_flow *flow)
                return true;
 
        if (flow->engine) {
-               RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+               TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                        if (engine == flow->engine)
                                return true;
                }
@@ -2322,7 +2322,7 @@ iavf_flow_flush(struct rte_eth_dev *dev,
        void *temp;
        int ret = 0;
 
-       RTE_TAILQ_FOREACH_SAFE(p_flow, &vf->flow_list, node, temp) {
+       TAILQ_FOREACH_SAFE(p_flow, &vf->flow_list, node, temp) {
                ret = iavf_flow_destroy(dev, p_flow, error);
                if (ret) {
                        PMD_DRV_LOG(ERR, "Failed to flush flows");
diff --git a/drivers/net/intel/ice/ice_ethdev.c 
b/drivers/net/intel/ice/ice_ethdev.c
index 76b8ff0a72..6f4b26dc9f 100644
--- a/drivers/net/intel/ice/ice_ethdev.c
+++ b/drivers/net/intel/ice/ice_ethdev.c
@@ -1373,7 +1373,7 @@ ice_remove_all_mac_vlan_filters(struct ice_vsi *vsi)
        if (!vsi || !vsi->mac_num)
                return -EINVAL;
 
-       RTE_TAILQ_FOREACH_SAFE(m_f, &vsi->mac_list, next, temp) {
+       TAILQ_FOREACH_SAFE(m_f, &vsi->mac_list, next, temp) {
                ret = ice_remove_mac_filter(vsi, &m_f->mac_info.mac_addr);
                if (ret != ICE_SUCCESS) {
                        ret = -EINVAL;
@@ -1384,7 +1384,7 @@ ice_remove_all_mac_vlan_filters(struct ice_vsi *vsi)
        if (vsi->vlan_num == 0)
                return 0;
 
-       RTE_TAILQ_FOREACH_SAFE(v_f, &vsi->vlan_list, next, temp) {
+       TAILQ_FOREACH_SAFE(v_f, &vsi->vlan_list, next, temp) {
                ret = ice_remove_vlan_filter(vsi, &v_f->vlan_info.vlan);
                if (ret != ICE_SUCCESS) {
                        ret = -EINVAL;
diff --git a/drivers/net/intel/ice/ice_generic_flow.c 
b/drivers/net/intel/ice/ice_generic_flow.c
index 23076b23d9..929dc94764 100644
--- a/drivers/net/intel/ice/ice_generic_flow.c
+++ b/drivers/net/intel/ice/ice_generic_flow.c
@@ -1998,7 +1998,7 @@ ice_flow_init(struct ice_adapter *ad)
                        ice_parser_dvm_set(ad->psr, false);
        }
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (engine->init == NULL) {
                        PMD_INIT_LOG(ERR, "Invalid engine type (%d)",
                                        engine->type);
@@ -2028,7 +2028,7 @@ ice_flow_uninit(struct ice_adapter *ad)
        struct rte_flow *p_flow;
        void *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &engine_list, node, temp) {
                if (ICE_FLOW_ENGINE_DISABLED(ad->disabled_engine_mask, 
engine->type)) {
                        PMD_DRV_LOG(DEBUG, "Engine %d disabled skip it", 
engine->type);
                        continue;
@@ -2556,7 +2556,7 @@ ice_flow_flush(struct rte_eth_dev *dev,
        void *temp;
        int ret = 0;
 
-       RTE_TAILQ_FOREACH_SAFE(p_flow, &pf->flow_list, node, temp) {
+       TAILQ_FOREACH_SAFE(p_flow, &pf->flow_list, node, temp) {
                ret = ice_flow_destroy(dev, p_flow, error);
                if (ret) {
                        PMD_DRV_LOG(ERR, "Failed to flush flows");
@@ -2697,7 +2697,7 @@ ice_flow_redirect(struct ice_adapter *ad,
 
        rte_spinlock_lock(&pf->flow_ops_lock);
 
-       RTE_TAILQ_FOREACH_SAFE(p_flow, &pf->flow_list, node, temp) {
+       TAILQ_FOREACH_SAFE(p_flow, &pf->flow_list, node, temp) {
                if (!p_flow->engine->redirect)
                        continue;
                ret = p_flow->engine->redirect(ad, p_flow, rd);
diff --git a/drivers/net/intel/ipn3ke/ipn3ke_flow.c 
b/drivers/net/intel/ipn3ke/ipn3ke_flow.c
index 3ee089a416..a74e729a66 100644
--- a/drivers/net/intel/ipn3ke/ipn3ke_flow.c
+++ b/drivers/net/intel/ipn3ke/ipn3ke_flow.c
@@ -1230,7 +1230,7 @@ ipn3ke_flow_flush(struct rte_eth_dev *dev,
        struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(dev);
        struct rte_flow *flow, *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(flow, &hw->flow_list, next, temp) {
+       TAILQ_FOREACH_SAFE(flow, &hw->flow_list, next, temp) {
                TAILQ_REMOVE(&hw->flow_list, flow, next);
                rte_free(flow);
        }
diff --git a/drivers/net/intel/ixgbe/ixgbe_flow.c 
b/drivers/net/intel/ixgbe/ixgbe_flow.c
index b3c4b10e75..4899be44af 100644
--- a/drivers/net/intel/ixgbe/ixgbe_flow.c
+++ b/drivers/net/intel/ixgbe/ixgbe_flow.c
@@ -2783,7 +2783,7 @@ ixgbe_filterlist_flush(struct rte_eth_dev *dev)
        struct ixgbe_adapter *adapter = 
IXGBE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
        struct ixgbe_filter_ele_base *ele, *tmp;
 
-       RTE_TAILQ_FOREACH_SAFE(ele, &adapter->flow_list, entries, tmp) {
+       TAILQ_FOREACH_SAFE(ele, &adapter->flow_list, entries, tmp) {
                struct ixgbe_flow_mem *ixgbe_flow_mem_ptr =
                        (struct ixgbe_flow_mem *)ele;
                struct rte_flow *flow = ixgbe_flow_mem_ptr->flow;
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 0866b425b4..0b26fab216 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -17516,7 +17516,7 @@ __flow_dv_destroy_sub_policy_rules(struct rte_eth_dev 
*dev,
                    policy->act_cnt[i].fate_action == MLX5_FLOW_FATE_MTR)
                        next_fm = mlx5_flow_meter_find(priv,
                                        policy->act_cnt[i].next_mtr_id, NULL);
-               RTE_TAILQ_FOREACH_SAFE(color_rule, &sub_policy->color_rules[i],
+               TAILQ_FOREACH_SAFE(color_rule, &sub_policy->color_rules[i],
                                   next_port, tmp) {
                        claim_zero(mlx5_flow_os_destroy_flow(color_rule->rule));
                        tbl = container_of(color_rule->matcher->tbl,
diff --git a/drivers/net/mlx5/mlx5_flow_meter.c 
b/drivers/net/mlx5/mlx5_flow_meter.c
index e7afcf5399..56babbff7f 100644
--- a/drivers/net/mlx5/mlx5_flow_meter.c
+++ b/drivers/net/mlx5/mlx5_flow_meter.c
@@ -2747,7 +2747,7 @@ mlx5_flow_meter_flush(struct rte_eth_dev *dev, struct 
rte_mtr_error *error)
                        priv->mtr_idx_tbl = NULL;
                }
        } else {
-               RTE_TAILQ_FOREACH_SAFE(legacy_fm, fms, next, tmp) {
+               TAILQ_FOREACH_SAFE(legacy_fm, fms, next, tmp) {
                        fm = &legacy_fm->fm;
                        if (mlx5_flow_meter_params_flush(dev, fm, 0))
                                return -rte_mtr_error_set(error, EINVAL,
diff --git a/drivers/net/nbl/nbl_common/nbl_userdev.c 
b/drivers/net/nbl/nbl_common/nbl_userdev.c
index 96f0d2e264..b95fad6c47 100644
--- a/drivers/net/nbl/nbl_common/nbl_userdev.c
+++ b/drivers/net/nbl/nbl_common/nbl_userdev.c
@@ -281,7 +281,7 @@ static int nbl_userdev_free_record(u64 vaddr, u64 iova 
__rte_unused, u64 len __r
 {
        struct nbl_userdev_map_record *record, *tmp_record;
 
-       RTE_TAILQ_FOREACH_SAFE(record, &nbl_map_list, next, tmp_record) {
+       TAILQ_FOREACH_SAFE(record, &nbl_map_list, next, tmp_record) {
                if (record->vaddr != vaddr)
                        continue;
                nbl_vfio_dma_mem_map(nbl_default_container, vaddr, record->len, 
0);
@@ -296,7 +296,7 @@ static void nbl_userdev_dma_free(void)
 {
        struct nbl_userdev_map_record *record, *tmp_record;
 
-       RTE_TAILQ_FOREACH_SAFE(record, &nbl_map_list, next, tmp_record) {
+       TAILQ_FOREACH_SAFE(record, &nbl_map_list, next, tmp_record) {
                TAILQ_REMOVE(&nbl_map_list, record, next);
                free(record);
        }
diff --git a/drivers/net/nfb/nfb_ethdev.c b/drivers/net/nfb/nfb_ethdev.c
index 9ad93c6766..672a443dd9 100644
--- a/drivers/net/nfb/nfb_ethdev.c
+++ b/drivers/net/nfb/nfb_ethdev.c
@@ -1127,7 +1127,7 @@ nfb_eth_common_remove(struct rte_device *dev)
 {
        struct pmd_internals *entry, *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(entry, &nfb_eth_dev_list, eth_dev_list, temp) {
+       TAILQ_FOREACH_SAFE(entry, &nfb_eth_dev_list, eth_dev_list, temp) {
                if (dev == entry->eth_dev->device)
                        rte_eth_dev_destroy(entry->eth_dev, nfb_eth_dev_uninit);
        }
diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c
index 1006243539..8a599e0726 100644
--- a/drivers/net/sfc/sfc_flow.c
+++ b/drivers/net/sfc/sfc_flow.c
@@ -2666,7 +2666,7 @@ sfc_flow_flush(struct rte_eth_dev *dev,
 
        sfc_adapter_lock(sa);
 
-       RTE_TAILQ_FOREACH_SAFE(flow, &sa->flow_list, entries, tmp) {
+       TAILQ_FOREACH_SAFE(flow, &sa->flow_list, entries, tmp) {
                if (flow->internal)
                        continue;
 
@@ -2962,7 +2962,7 @@ sfc_flow_fini(struct sfc_adapter *sa)
 
        SFC_ASSERT(sfc_adapter_is_locked(sa));
 
-       RTE_TAILQ_FOREACH_SAFE(flow, &sa->flow_list, entries, tmp) {
+       TAILQ_FOREACH_SAFE(flow, &sa->flow_list, entries, tmp) {
                if (flow->internal)
                        continue;
 
diff --git a/drivers/net/softnic/rte_eth_softnic_swq.c 
b/drivers/net/softnic/rte_eth_softnic_swq.c
index afe6f05e29..2083d0a976 100644
--- a/drivers/net/softnic/rte_eth_softnic_swq.c
+++ b/drivers/net/softnic/rte_eth_softnic_swq.c
@@ -39,7 +39,7 @@ softnic_softnic_swq_free_keep_rxq_txq(struct pmd_internals *p)
 {
        struct softnic_swq *swq, *tswq;
 
-       RTE_TAILQ_FOREACH_SAFE(swq, &p->swq_list, node, tswq) {
+       TAILQ_FOREACH_SAFE(swq, &p->swq_list, node, tswq) {
                if ((strncmp(swq->name, "RXQ", strlen("RXQ")) == 0) ||
                        (strncmp(swq->name, "TXQ", strlen("TXQ")) == 0))
                        continue;
diff --git a/drivers/net/sxe2/sxe2_dump.c b/drivers/net/sxe2/sxe2_dump.c
index d43473e083..3d003bb34e 100644
--- a/drivers/net/sxe2/sxe2_dump.c
+++ b/drivers/net/sxe2/sxe2_dump.c
@@ -132,7 +132,7 @@ static void sxe2_dump_filter_info(FILE *file, struct 
rte_eth_dev *dev)
        if (adapter->filter_ctxt.uc_num > 0) {
                fprintf(file,
                        "\t  -- Unicast entry:\n");
-               RTE_TAILQ_FOREACH_SAFE(mac_entry, 
&adapter->filter_ctxt.uc_list, next,
+               TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.uc_list, 
next,
                                       next_mac_entry) {
                        fprintf(file,
                                "\t  -- addr: %02x:%02x:%02x:%02x:%02x:%02x hw 
status:%u "
@@ -151,7 +151,7 @@ static void sxe2_dump_filter_info(FILE *file, struct 
rte_eth_dev *dev)
        if (adapter->filter_ctxt.mc_num > 0) {
                fprintf(file,
                        "\t  -- Multicast entry:\n");
-               RTE_TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.mc_list,
+               TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.mc_list,
                                       next, next_mac_entry) {
                        fprintf(file,
                                "\t  -- addr: %02x:%02x:%02x:%02x:%02x:%02x "
@@ -170,7 +170,7 @@ static void sxe2_dump_filter_info(FILE *file, struct 
rte_eth_dev *dev)
        if (adapter->filter_ctxt.vlan_num > 0) {
                fprintf(file,
                        "\t  -- Vlan entry:\n");
-               RTE_TAILQ_FOREACH_SAFE(vlan_entry, 
&adapter->filter_ctxt.vlan_list,
+               TAILQ_FOREACH_SAFE(vlan_entry, &adapter->filter_ctxt.vlan_list,
                        next, next_vlan_entry) {
                        fprintf(file,
                                "\t  -- vlan tpid:0x%04x vid:0x%04x prio:%d "
diff --git a/drivers/net/sxe2/sxe2_filter.c b/drivers/net/sxe2/sxe2_filter.c
index 175b886aa3..c581339f78 100644
--- a/drivers/net/sxe2/sxe2_filter.c
+++ b/drivers/net/sxe2/sxe2_filter.c
@@ -19,7 +19,7 @@ static struct sxe2_mac_filter *sxe2_uc_filter_find(struct 
sxe2_adapter *adapter,
        struct sxe2_mac_filter *next_entry  = NULL;
 
        rte_spinlock_lock(&adapter->filter_ctxt.filter_lock);
-       RTE_TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.uc_list, next, 
next_entry) {
+       TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.uc_list, next, 
next_entry) {
                if (rte_is_same_ether_addr(macaddr, &entry->mac_addr)) {
                        filter = entry;
                        break;
@@ -125,7 +125,7 @@ void sxe2_uc_filter_clear(struct sxe2_adapter *adapter, 
bool default_config)
        struct sxe2_mac_filter *entry;
        struct sxe2_mac_filter *next_entry;
 
-       RTE_TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.uc_list, next, 
next_entry) {
+       TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.uc_list, next, 
next_entry) {
                if (entry->default_config && !default_config)
                        continue;
 
@@ -142,7 +142,7 @@ static struct sxe2_mac_filter *sxe2_mc_filter_find(struct 
sxe2_adapter *adapter,
        struct sxe2_mac_filter *next_entry  = NULL;
 
        rte_spinlock_lock(&adapter->filter_ctxt.filter_lock);
-       RTE_TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.mc_list, next, 
next_entry) {
+       TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.mc_list, next, 
next_entry) {
                if (rte_is_same_ether_addr(macaddr, &entry->mac_addr)) {
                        filter = entry;
                        break;
@@ -249,7 +249,7 @@ void sxe2_mc_filter_clear(struct sxe2_adapter *adapter, 
bool default_config)
        struct sxe2_mac_filter *entry;
        struct sxe2_mac_filter *next_entry;
 
-       RTE_TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.mc_list, next, 
next_entry) {
+       TAILQ_FOREACH_SAFE(entry, &adapter->filter_ctxt.mc_list, next, 
next_entry) {
                if (entry->default_config && !default_config)
                        continue;
                if (sxe2_mc_filter_del(adapter, &entry->mac_addr))
@@ -388,7 +388,7 @@ void sxe2_vlan_filters_clear(struct sxe2_adapter *adapter, 
bool default_config)
        if (adapter->filter_ctxt.vlan_num == 0)
                return;
 
-       RTE_TAILQ_FOREACH_SAFE(v_f, &adapter->filter_ctxt.vlan_list, next, temp)
+       TAILQ_FOREACH_SAFE(v_f, &adapter->filter_ctxt.vlan_list, next, temp)
        {
                if (v_f->default_config && !default_config)
                        continue;
@@ -521,7 +521,7 @@ static int32_t sxe2_all_filter_hw_clear(struct sxe2_adapter 
*adapter)
        struct sxe2_vlan_filter *next_vlan_entry;
 
        if (adapter->filter_ctxt.uc_num > 0) {
-               RTE_TAILQ_FOREACH_SAFE(mac_entry, 
&adapter->filter_ctxt.uc_list, next,
+               TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.uc_list, 
next,
                            next_mac_entry) {
                        if (mac_entry->hw_config) {
                                ret = sxe2_drv_uc_config(adapter, 
&mac_entry->mac_addr, false);
@@ -536,7 +536,7 @@ static int32_t sxe2_all_filter_hw_clear(struct sxe2_adapter 
*adapter)
        }
 
        if (adapter->filter_ctxt.mc_num > 0) {
-               RTE_TAILQ_FOREACH_SAFE(mac_entry, 
&adapter->filter_ctxt.mc_list, next,
+               TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.mc_list, 
next,
                            next_mac_entry) {
                        if (mac_entry->hw_config) {
                                ret = sxe2_drv_mc_config(adapter, 
&mac_entry->mac_addr, false);
@@ -551,7 +551,7 @@ static int32_t sxe2_all_filter_hw_clear(struct sxe2_adapter 
*adapter)
        }
 
        if (adapter->filter_ctxt.vlan_num > 0) {
-               RTE_TAILQ_FOREACH_SAFE(vlan_entry, 
&adapter->filter_ctxt.vlan_list, next,
+               TAILQ_FOREACH_SAFE(vlan_entry, &adapter->filter_ctxt.vlan_list, 
next,
                            next_vlan_entry) {
                        if (vlan_entry->hw_config) {
                                ret = sxe2_drv_vlan_filter_id_config(adapter,
@@ -606,7 +606,7 @@ static int32_t sxe2_all_filter_hw_set(struct sxe2_adapter 
*adapter)
        struct sxe2_vlan_filter *next_vlan_entry;
 
        if (adapter->filter_ctxt.uc_num > 0) {
-               RTE_TAILQ_FOREACH_SAFE(mac_entry, 
&adapter->filter_ctxt.uc_list, next,
+               TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.uc_list, 
next,
                                       next_mac_entry) {
                        if (!mac_entry->hw_config) {
                                ret = sxe2_drv_uc_config(adapter, 
&mac_entry->mac_addr,
@@ -624,7 +624,7 @@ static int32_t sxe2_all_filter_hw_set(struct sxe2_adapter 
*adapter)
        }
 
        if (adapter->filter_ctxt.mc_num > 0) {
-               RTE_TAILQ_FOREACH_SAFE(mac_entry, 
&adapter->filter_ctxt.mc_list, next,
+               TAILQ_FOREACH_SAFE(mac_entry, &adapter->filter_ctxt.mc_list, 
next,
                                       next_mac_entry) {
                        if (!mac_entry->hw_config) {
                                ret = sxe2_drv_mc_config(adapter, 
&mac_entry->mac_addr, true);
@@ -641,7 +641,7 @@ static int32_t sxe2_all_filter_hw_set(struct sxe2_adapter 
*adapter)
        }
 
        if (adapter->filter_ctxt.vlan_num > 0) {
-               RTE_TAILQ_FOREACH_SAFE(vlan_entry, 
&adapter->filter_ctxt.vlan_list, next,
+               TAILQ_FOREACH_SAFE(vlan_entry, &adapter->filter_ctxt.vlan_list, 
next,
                                       next_vlan_entry) {
                        if (!vlan_entry->hw_config) {
                                ret = sxe2_drv_vlan_filter_id_config(adapter,
diff --git a/drivers/net/sxe2/sxe2_vsi.c b/drivers/net/sxe2/sxe2_vsi.c
index d29480b931..7d2252725b 100644
--- a/drivers/net/sxe2/sxe2_vsi.c
+++ b/drivers/net/sxe2/sxe2_vsi.c
@@ -287,7 +287,7 @@ void sxe2_vsi_uninit(struct rte_eth_dev *dev)
                PMD_LOG_ERR(DRV, "Failed to del vsi from fw, ret=%d", ret);
                goto l_end;
        }
-       RTE_TAILQ_FOREACH_SAFE(var, &adapter->vsi_ctxt.other_vsi_list, next, 
tvar) {
+       TAILQ_FOREACH_SAFE(var, &adapter->vsi_ctxt.other_vsi_list, next, tvar) {
                ret = sxe2_vsi_destroy(adapter, var);
                if (ret) {
                        PMD_LOG_ERR(DRV, "Failed to del vsi from fw, ret=%d", 
ret);
diff --git a/drivers/net/zxdh/zxdh_flow.c b/drivers/net/zxdh/zxdh_flow.c
index c138712635..5da939ec03 100644
--- a/drivers/net/zxdh/zxdh_flow.c
+++ b/drivers/net/zxdh/zxdh_flow.c
@@ -288,7 +288,7 @@ static struct dh_flow_engine *zxdh_get_flow_engine(struct 
rte_eth_dev *dev __rte
        struct dh_flow_engine *engine = NULL;
        void *temp;
 
-       RTE_TAILQ_FOREACH_SAFE(engine, &flow_engine_list, node, temp) {
+       TAILQ_FOREACH_SAFE(engine, &flow_engine_list, node, temp) {
                if (engine->type  == FLOW_TYPE_FD_TCAM)
                        break;
        }
diff --git a/drivers/net/zxdh/zxdh_mtr.c b/drivers/net/zxdh/zxdh_mtr.c
index b23f6535a8..e49e88b64b 100644
--- a/drivers/net/zxdh/zxdh_mtr.c
+++ b/drivers/net/zxdh/zxdh_mtr.c
@@ -1209,13 +1209,13 @@ zxdh_mtr_release(struct rte_eth_dev *dev)
        struct rte_mtr_error error = {0};
        struct zxdh_mtr_object *mtr_obj;
 
-       RTE_TAILQ_FOREACH(mtr_obj, &zxdh_shared_data->mtr_list, next) {
+       TAILQ_FOREACH(mtr_obj, &zxdh_shared_data->mtr_list, next) {
                if (mtr_obj->port_id == priv->port_id)
                        zxdh_mtr_obj_free(dev, mtr_obj);
        }
 
 
-       RTE_TAILQ_FOREACH(profile, &zxdh_shared_data->meter_profile_list, next) 
{
+       TAILQ_FOREACH(profile, &zxdh_shared_data->meter_profile_list, next) {
                if (profile->dpdk_port_id == priv->port_id)
                        zxdh_mtr_profile_res_free(dev,
                                zxdh_shared_data->mtr_profile_mp,
@@ -1226,7 +1226,7 @@ zxdh_mtr_release(struct rte_eth_dev *dev)
 
        struct zxdh_meter_policy *policy;
 
-       RTE_TAILQ_FOREACH(policy, &zxdh_shared_data->mtr_policy_list, next) {
+       TAILQ_FOREACH(policy, &zxdh_shared_data->mtr_policy_list, next) {
                if (policy->dpdk_port_id == priv->port_id)
                        
zxdh_mtr_policy_res_free(zxdh_shared_data->mtr_policy_mp, policy);
        }
diff --git a/examples/vm_power_manager/channel_manager.c 
b/examples/vm_power_manager/channel_manager.c
index e162fe5da6..5c41219827 100644
--- a/examples/vm_power_manager/channel_manager.c
+++ b/examples/vm_power_manager/channel_manager.c
@@ -59,16 +59,16 @@ struct virtual_machine_info {
        virDomainInfo info;
        rte_spinlock_t config_spinlock;
        int allow_query;
-       RTE_TAILQ_ENTRY(virtual_machine_info) vms_info;
+       TAILQ_ENTRY(virtual_machine_info) vms_info;
 };
 
-RTE_TAILQ_HEAD(, virtual_machine_info) vm_list_head;
+TAILQ_HEAD(, virtual_machine_info) vm_list_head;
 
 static struct virtual_machine_info *
 find_domain_by_name(const char *name)
 {
        struct virtual_machine_info *info;
-       RTE_TAILQ_FOREACH(info, &vm_list_head, vms_info) {
+       TAILQ_FOREACH(info, &vm_list_head, vms_info) {
                if (!strncmp(info->name, name, CHANNEL_MGR_MAX_NAME_LEN-1))
                        return info;
        }
@@ -1015,7 +1015,7 @@ channel_manager_exit(void)
        char mask[RTE_MAX_LCORE];
        struct virtual_machine_info *vm_info, *tmp;
 
-       RTE_TAILQ_FOREACH_SAFE(vm_info, &vm_list_head, vms_info, tmp) {
+       TAILQ_FOREACH_SAFE(vm_info, &vm_list_head, vms_info, tmp) {
 
                rte_spinlock_lock(&(vm_info->config_spinlock));
 
diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
index 36dabf8fa6..e8de3fe265 100644
--- a/lib/bbdev/rte_bbdev.h
+++ b/lib/bbdev/rte_bbdev.h
@@ -501,7 +501,7 @@ struct rte_bbdev_callback;
 struct rte_intr_handle;
 
 /** Structure to keep track of registered callbacks */
-RTE_TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
+TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
 
 /**
  * @internal The data structure associated with a device. Drivers can access
diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.h
index 929c6defe9..c60b60c767 100644
--- a/lib/cryptodev/cryptodev_pmd.h
+++ b/lib/cryptodev/cryptodev_pmd.h
@@ -131,7 +131,7 @@ struct rte_cryptodev_global {
 
 /* Cryptodev driver, containing the driver ID */
 struct cryptodev_driver {
-       RTE_TAILQ_ENTRY(cryptodev_driver) next; /**< Next in list. */
+       TAILQ_ENTRY(cryptodev_driver) next; /**< Next in list. */
        const struct rte_driver *driver;
        uint8_t id;
 };
diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h
index 37a6a5e49b..1fc2282894 100644
--- a/lib/cryptodev/rte_cryptodev.h
+++ b/lib/cryptodev/rte_cryptodev.h
@@ -1049,7 +1049,7 @@ rte_cryptodev_queue_pair_event_error_query(uint8_t 
dev_id, uint16_t qp_id);
 struct rte_cryptodev_callback;
 
 /** Structure to keep track of registered callbacks */
-RTE_TAILQ_HEAD(rte_cryptodev_cb_list, rte_cryptodev_callback);
+TAILQ_HEAD(rte_cryptodev_cb_list, rte_cryptodev_callback);
 
 /**
  * Structure used to hold information about the callbacks to be called for a
diff --git a/lib/eal/common/eal_common_devargs.c 
b/lib/eal/common/eal_common_devargs.c
index c523429d67..c5936ae6bd 100644
--- a/lib/eal/common/eal_common_devargs.c
+++ b/lib/eal/common/eal_common_devargs.c
@@ -303,7 +303,7 @@ rte_devargs_insert(struct rte_devargs **da)
        if (*da == NULL || (*da)->bus == NULL)
                return -1;
 
-       RTE_TAILQ_FOREACH_SAFE(listed_da, &devargs_list, next, tmp) {
+       TAILQ_FOREACH_SAFE(listed_da, &devargs_list, next, tmp) {
                if (listed_da == *da)
                        /* devargs already in the list */
                        return 0;
@@ -372,7 +372,7 @@ rte_devargs_remove(struct rte_devargs *devargs)
        if (devargs == NULL || devargs->bus == NULL)
                return -1;
 
-       RTE_TAILQ_FOREACH_SAFE(d, &devargs_list, next, tmp) {
+       TAILQ_FOREACH_SAFE(d, &devargs_list, next, tmp) {
                if (strcmp(d->bus->name, devargs->bus->name) == 0 &&
                    strcmp(d->name, devargs->name) == 0) {
                        TAILQ_REMOVE(&devargs_list, d, next);
diff --git a/lib/eal/common/eal_common_options.c 
b/lib/eal/common/eal_common_options.c
index 9c5d6df36f..26f3e4e931 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -482,7 +482,7 @@ eal_option_device_parse(void)
        void *tmp;
        int ret = 0;
 
-       RTE_TAILQ_FOREACH_SAFE(devopt, &devopt_list, next, tmp) {
+       TAILQ_FOREACH_SAFE(devopt, &devopt_list, next, tmp) {
                if (ret == 0) {
                        ret = rte_devargs_add(devopt->type, devopt->arg);
                        if (ret)
diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c
index 5133eaaa47..aded70b9cb 100644
--- a/lib/eal/common/eal_common_proc.c
+++ b/lib/eal/common/eal_common_proc.c
@@ -1266,7 +1266,7 @@ rte_mp_request_async(struct rte_mp_msg *req, const struct 
timespec *ts,
        if (ret != 0 && reply->nb_sent > 0) {
                struct pending_request *r, *tmp;
 
-               RTE_TAILQ_FOREACH_SAFE(r, &pending_requests.requests, next, 
tmp) {
+               TAILQ_FOREACH_SAFE(r, &pending_requests.requests, next, tmp) {
                        if (r->type == REQUEST_TYPE_ASYNC && r->async.param == 
param) {
                                TAILQ_REMOVE(&pending_requests.requests, r, 
next);
                                free(r->reply);
diff --git a/lib/eal/freebsd/include/rte_os.h b/lib/eal/freebsd/include/rte_os.h
index ddc3b4fd2e..05ff038e1d 100644
--- a/lib/eal/freebsd/include/rte_os.h
+++ b/lib/eal/freebsd/include/rte_os.h
@@ -12,17 +12,11 @@
 
 #include <pthread_np.h>
 #include <stdlib.h>            /* Declares alloca() */
+/* Not used here, but included so that rte_queue.h wins the multiple
+ * inclusion guard race against a system <sys/queue.h>. See rte_queue.h.
+ */
 #include <rte_queue.h>
 
-/* These macros are compatible with system's sys/queue.h. */
-#define RTE_TAILQ_HEAD(name, type) TAILQ_HEAD(name, type)
-#define RTE_TAILQ_ENTRY(type) TAILQ_ENTRY(type)
-#define RTE_TAILQ_FOREACH(var, head, field) TAILQ_FOREACH(var, head, field)
-#define RTE_TAILQ_FIRST(head) TAILQ_FIRST(head)
-#define RTE_TAILQ_NEXT(elem, field) TAILQ_NEXT(elem, field)
-#define RTE_STAILQ_HEAD(name, type) STAILQ_HEAD(name, type)
-#define RTE_STAILQ_ENTRY(type) STAILQ_ENTRY(type)
-
 typedef cpuset_t rte_cpuset_t;
 #define RTE_HAS_CPUSET
 
diff --git a/lib/eal/include/bus_driver.h b/lib/eal/include/bus_driver.h
index fa4d711a90..34f4cfdc4d 100644
--- a/lib/eal/include/bus_driver.h
+++ b/lib/eal/include/bus_driver.h
@@ -20,7 +20,7 @@ struct rte_device;
 struct rte_driver;
 
 /** Double linked list of buses */
-RTE_TAILQ_HEAD(rte_bus_list, rte_bus);
+TAILQ_HEAD(rte_bus_list, rte_bus);
 
 /**
  * Bus specific scan for devices attached on the bus.
@@ -351,7 +351,7 @@ typedef void *(*rte_bus_dev_iterate_t)(const struct rte_bus 
*bus,
  * A structure describing a generic bus.
  */
 struct rte_bus {
-       RTE_TAILQ_ENTRY(rte_bus) next; /**< Next bus object in linked list */
+       TAILQ_ENTRY(rte_bus) next; /**< Next bus object in linked list */
        const char *name;            /**< Name of the bus */
        bool allow_multi_probe;      /**< Allow probing devices multiple times 
*/
        rte_bus_scan_t scan;         /**< Scan for devices attached to bus */
@@ -374,8 +374,8 @@ struct rte_bus {
                                        /**< handle sigbus error on the bus */
        rte_bus_free_device_t free_device; /**< Free bus-specific device */
        rte_bus_cleanup_t cleanup;   /**< Cleanup devices on bus */
-       RTE_TAILQ_HEAD(, rte_device) device_list; /**< List of devices on the 
bus */
-       RTE_TAILQ_HEAD(, rte_driver) driver_list; /**< List of drivers on the 
bus */
+       TAILQ_HEAD(, rte_device) device_list; /**< List of devices on the bus */
+       TAILQ_HEAD(, rte_driver) driver_list; /**< List of drivers on the bus */
 };
 
 /**
diff --git a/lib/eal/include/dev_driver.h b/lib/eal/include/dev_driver.h
index 2052e3ecb2..2732401dfd 100644
--- a/lib/eal/include/dev_driver.h
+++ b/lib/eal/include/dev_driver.h
@@ -12,7 +12,7 @@
  * A structure describing a device driver.
  */
 struct rte_driver {
-       RTE_TAILQ_ENTRY(rte_driver) next; /**< Next in list. */
+       TAILQ_ENTRY(rte_driver) next; /**< Next in list. */
        const char *name;                   /**< Driver name. */
        const char *alias;              /**< Driver alias. */
        const struct rte_bus *bus;      /**< Bus reference. */
@@ -22,7 +22,7 @@ struct rte_driver {
  * A structure describing a generic device.
  */
 struct rte_device {
-       RTE_TAILQ_ENTRY(rte_device) next; /**< Next device */
+       TAILQ_ENTRY(rte_device) next; /**< Next device */
        const char *name;             /**< Device name */
        const char *bus_info;         /**< Device bus specific information */
        const struct rte_driver *driver; /**< Driver assigned after probing */
diff --git a/lib/eal/include/rte_class.h b/lib/eal/include/rte_class.h
index 7631e36e82..216474ff43 100644
--- a/lib/eal/include/rte_class.h
+++ b/lib/eal/include/rte_class.h
@@ -25,13 +25,13 @@ extern "C" {
 #endif
 
 /** Double linked list of classes */
-RTE_TAILQ_HEAD(rte_class_list, rte_class);
+TAILQ_HEAD(rte_class_list, rte_class);
 
 /**
  * A structure describing a generic device class.
  */
 struct rte_class {
-       RTE_TAILQ_ENTRY(rte_class) next; /**< Next device class in linked list 
*/
+       TAILQ_ENTRY(rte_class) next; /**< Next device class in linked list */
        const char *name; /**< Name of the class */
        rte_dev_iterate_t dev_iterate; /**< Device iterator. */
 };
diff --git a/lib/eal/include/rte_devargs.h b/lib/eal/include/rte_devargs.h
index ed5a4675d9..0c64a98214 100644
--- a/lib/eal/include/rte_devargs.h
+++ b/lib/eal/include/rte_devargs.h
@@ -71,7 +71,7 @@ enum rte_devtype {
  */
 struct rte_devargs {
        /** Next in list. */
-       RTE_TAILQ_ENTRY(rte_devargs) next;
+       TAILQ_ENTRY(rte_devargs) next;
        /** Type of device. */
        enum rte_devtype type;
        /** Device policy. */
diff --git a/lib/eal/include/rte_queue.h b/lib/eal/include/rte_queue.h
index a847670470..635e7797cf 100644
--- a/lib/eal/include/rte_queue.h
+++ b/lib/eal/include/rte_queue.h
@@ -26,6 +26,11 @@
  * _FOREACH_SAFE, _FOREACH_FROM or _SWAP. Conversely, when this header wins,
  * the glibc-only CIRCLEQ_ and SIMPLEQ_ families are not defined.
  *
+ * Within DPDK this is not a problem: rte_os.h includes this header and is
+ * reached from rte_common.h, so any DPDK header included first wins the
+ * race. Note that the include in rte_os.h is load bearing for that reason,
+ * even though nothing in rte_os.h itself uses the list macros.
+ *
  * The FreeBSD QUEUE_MACRO_DEBUG and INVARIANTS facilities are omitted: they
  * are there to debug the macros themselves, which is not something DPDK does.
  */
diff --git a/lib/eal/include/rte_tailq.h b/lib/eal/include/rte_tailq.h
index e7caed6812..decd833b0d 100644
--- a/lib/eal/include/rte_tailq.h
+++ b/lib/eal/include/rte_tailq.h
@@ -12,6 +12,7 @@
 
 #include <stdio.h>
 #include <rte_debug.h>
+#include <rte_queue.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -19,11 +20,11 @@ extern "C" {
 
 /** dummy structure type used by the rte_tailq APIs */
 struct rte_tailq_entry {
-       RTE_TAILQ_ENTRY(rte_tailq_entry) next; /**< Pointer entries for a tailq 
list */
+       TAILQ_ENTRY(rte_tailq_entry) next; /**< Pointer entries for a tailq 
list */
        void *data; /**< Pointer to the data referenced by this tailq entry */
 };
 /** dummy */
-RTE_TAILQ_HEAD(rte_tailq_entry_head, rte_tailq_entry);
+TAILQ_HEAD(rte_tailq_entry_head, rte_tailq_entry);
 
 #define RTE_TAILQ_NAMESIZE 32
 
@@ -46,7 +47,7 @@ struct rte_tailq_elem {
         * rte_eal_tailqs_init()
         */
        struct rte_tailq_head *head;
-       RTE_TAILQ_ENTRY(rte_tailq_elem) next;
+       TAILQ_ENTRY(rte_tailq_elem) next;
        const char name[RTE_TAILQ_NAMESIZE];
 };
 
@@ -124,10 +125,32 @@ RTE_INIT(tailqinitfn_ ##t) \
                rte_panic("Cannot initialize tailq: %s\n", t.name); \
 }
 
-/* This macro permits both remove and free var within the loop safely.*/
+/*
+ * Compatibility wrappers, deprecated.
+ *
+ * These existed only because Windows had no <sys/queue.h>. Use the plain
+ * macros from <rte_queue.h> instead; these are kept for out of tree code
+ * and will be removed in a future release.
+ *
+ * They are defined in terms of the plain TAILQ_ and STAILQ_ macros only,
+ * never the extended ones, so that they keep working in a translation unit
+ * that included a system <sys/queue.h> before any DPDK header, in which
+ * case rte_queue.h is suppressed and only the subset the system provides
+ * is defined. That is why RTE_TAILQ_FOREACH_SAFE is open coded rather than
+ * mapped to TAILQ_FOREACH_SAFE, which glibc does not have.
+ */
+#define RTE_TAILQ_HEAD(name, type) TAILQ_HEAD(name, type)
+#define RTE_TAILQ_ENTRY(type) TAILQ_ENTRY(type)
+#define RTE_TAILQ_FOREACH(var, head, field) TAILQ_FOREACH(var, head, field)
+#define RTE_TAILQ_FIRST(head) TAILQ_FIRST(head)
+#define RTE_TAILQ_NEXT(elem, field) TAILQ_NEXT(elem, field)
+#define RTE_STAILQ_HEAD(name, type) STAILQ_HEAD(name, type)
+#define RTE_STAILQ_ENTRY(type) STAILQ_ENTRY(type)
+
+/* This macro permits both remove and free var within the loop safely. */
 #define RTE_TAILQ_FOREACH_SAFE(var, head, field, tvar) \
-       for ((var) = RTE_TAILQ_FIRST((head)); \
-           (var) && ((tvar) = RTE_TAILQ_NEXT((var), field), 1); \
+       for ((var) = TAILQ_FIRST((head)); \
+           (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
            (var) = (tvar))
 
 #ifdef __cplusplus
diff --git a/lib/eal/linux/include/rte_os.h b/lib/eal/linux/include/rte_os.h
index 3c87f52b33..e8b35d265e 100644
--- a/lib/eal/linux/include/rte_os.h
+++ b/lib/eal/linux/include/rte_os.h
@@ -12,17 +12,11 @@
 
 #include <alloca.h>
 #include <sched.h>
+/* Not used here, but included so that rte_queue.h wins the multiple
+ * inclusion guard race against a system <sys/queue.h>. See rte_queue.h.
+ */
 #include <rte_queue.h>
 
-/* These macros are compatible with system's sys/queue.h. */
-#define RTE_TAILQ_HEAD(name, type) TAILQ_HEAD(name, type)
-#define RTE_TAILQ_ENTRY(type) TAILQ_ENTRY(type)
-#define RTE_TAILQ_FOREACH(var, head, field) TAILQ_FOREACH(var, head, field)
-#define RTE_TAILQ_FIRST(head) TAILQ_FIRST(head)
-#define RTE_TAILQ_NEXT(elem, field) TAILQ_NEXT(elem, field)
-#define RTE_STAILQ_HEAD(name, type) STAILQ_HEAD(name, type)
-#define RTE_STAILQ_ENTRY(type) STAILQ_ENTRY(type)
-
 #ifdef CPU_SETSIZE /* may require _GNU_SOURCE */
 typedef cpu_set_t rte_cpuset_t;
 #define RTE_HAS_CPUSET
diff --git a/lib/eal/windows/include/rte_os.h b/lib/eal/windows/include/rte_os.h
index 2a43cb1f9b..3f2a57c325 100644
--- a/lib/eal/windows/include/rte_os.h
+++ b/lib/eal/windows/include/rte_os.h
@@ -16,33 +16,10 @@
 #include <malloc.h>
 
 #include <sched.h>
-
-/* These macros are compatible with bundled sys/queue.h. */
-#define RTE_TAILQ_HEAD(name, type) \
-struct name { \
-       struct type *tqh_first; \
-       struct type **tqh_last; \
-}
-#define RTE_TAILQ_ENTRY(type) \
-struct { \
-       struct type *tqe_next; \
-       struct type **tqe_prev; \
-}
-#define RTE_TAILQ_FOREACH(var, head, field) \
-       for ((var) = RTE_TAILQ_FIRST((head)); \
-           (var); \
-           (var) = RTE_TAILQ_NEXT((var), field))
-#define RTE_TAILQ_FIRST(head) ((head)->tqh_first)
-#define RTE_TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
-#define RTE_STAILQ_HEAD(name, type) \
-struct name { \
-       struct type *stqh_first; \
-       struct type **stqh_last; \
-}
-#define RTE_STAILQ_ENTRY(type) \
-struct { \
-       struct type *stqe_next; \
-}
+/* Not used here, but included so that rte_queue.h wins the multiple
+ * inclusion guard race against a system <sys/queue.h>. See rte_queue.h.
+ */
+#include <rte_queue.h>
 
 /* cpu_set macros implementation */
 #define RTE_CPU_AND(dst, src1, src2) CPU_AND(dst, src1, src2)
diff --git a/lib/efd/rte_efd.c b/lib/efd/rte_efd.c
index 34b9585cb8..e184fc10f6 100644
--- a/lib/efd/rte_efd.c
+++ b/lib/efd/rte_efd.c
@@ -777,7 +777,7 @@ rte_efd_free(struct rte_efd_table *table)
        efd_list = RTE_TAILQ_CAST(rte_efd_tailq.head, rte_efd_list);
        rte_mcfg_tailq_write_lock();
 
-       RTE_TAILQ_FOREACH_SAFE(te, efd_list, next, temp) {
+       TAILQ_FOREACH_SAFE(te, efd_list, next, temp) {
                if (te->data == (void *) table) {
                        TAILQ_REMOVE(efd_list, te, next);
                        rte_free(te);
diff --git a/lib/ethdev/rte_ethdev_core.h b/lib/ethdev/rte_ethdev_core.h
index 4ffae4921a..e8497301f2 100644
--- a/lib/ethdev/rte_ethdev_core.h
+++ b/lib/ethdev/rte_ethdev_core.h
@@ -18,7 +18,7 @@
 
 struct rte_eth_dev_callback;
 /** @internal Structure to keep track of registered callbacks */
-RTE_TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
+TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
 
 struct rte_eth_dev;
 
diff --git a/lib/eventdev/rte_event_vector_adapter.c 
b/lib/eventdev/rte_event_vector_adapter.c
index 9a839517c8..3e1ef8bf44 100644
--- a/lib/eventdev/rte_event_vector_adapter.c
+++ b/lib/eventdev/rte_event_vector_adapter.c
@@ -506,7 +506,7 @@ struct sw_vector_adapter_data {
        struct rte_event_vector_adapter *adapter;
        struct rte_event_vector_adapter_stats stats;
        struct sw_vector_adapter_service_data *service_data;
-       RTE_TAILQ_ENTRY(sw_vector_adapter_data) next;
+       TAILQ_ENTRY(sw_vector_adapter_data) next;
 };
 
 struct sw_vector_adapter_service_data {
diff --git a/lib/gpudev/gpudev.c b/lib/gpudev/gpudev.c
index b44f92a04c..d67878a999 100644
--- a/lib/gpudev/gpudev.c
+++ b/lib/gpudev/gpudev.c
@@ -476,7 +476,7 @@ rte_gpu_callback_unregister(int16_t dev_id, enum 
rte_gpu_event event,
        rte_rwlock_write_lock(&gpu_callback_lock);
        do {
                callbacks = &gpus[next_dev].callbacks;
-               RTE_TAILQ_FOREACH_SAFE(callback, callbacks, next, nextcb) {
+               TAILQ_FOREACH_SAFE(callback, callbacks, next, nextcb) {
                        if (callback->event != event ||
                                        callback->function != function ||
                                        (callback->user_data != user_data &&
@@ -499,7 +499,7 @@ gpu_free_callbacks(struct rte_gpu *dev)
 
        callbacks = &dev->callbacks;
        rte_rwlock_write_lock(&gpu_callback_lock);
-       RTE_TAILQ_FOREACH_SAFE(callback, callbacks, next, nextcb) {
+       TAILQ_FOREACH_SAFE(callback, callbacks, next, nextcb) {
                TAILQ_REMOVE(callbacks, callback, next);
                free(callback);
        }
diff --git a/lib/gpudev/gpudev_driver.h b/lib/gpudev/gpudev_driver.h
index b7621f6e5a..956deb8935 100644
--- a/lib/gpudev/gpudev_driver.h
+++ b/lib/gpudev/gpudev_driver.h
@@ -80,7 +80,7 @@ struct __rte_cache_aligned rte_gpu {
        /* Driver functions. */
        struct rte_gpu_ops ops;
        /* Event callback list. */
-       RTE_TAILQ_HEAD(rte_gpu_callback_list, rte_gpu_callback) callbacks;
+       TAILQ_HEAD(rte_gpu_callback_list, rte_gpu_callback) callbacks;
        /* Current state (used or not) in the running process. */
        enum rte_gpu_state process_state; /* Updated by this library. */
        /* Driver-specific private data for the running process. */
diff --git a/lib/ip_frag/ip_reassembly.h b/lib/ip_frag/ip_reassembly.h
index 9e1666ef67..001a0d6e5b 100644
--- a/lib/ip_frag/ip_reassembly.h
+++ b/lib/ip_frag/ip_reassembly.h
@@ -48,7 +48,7 @@ struct ip_frag_key {
  * First two entries in the frags[] array are for the last and first fragments.
  */
 struct __rte_cache_aligned ip_frag_pkt {
-       RTE_TAILQ_ENTRY(ip_frag_pkt) lru;      /* LRU list */
+       TAILQ_ENTRY(ip_frag_pkt) lru;      /* LRU list */
        struct ip_frag_key key;                /* fragmentation key */
        uint64_t start;                        /* creation timestamp */
        uint32_t total_size;                   /* expected reassembled size */
@@ -58,7 +58,7 @@ struct __rte_cache_aligned ip_frag_pkt {
 };
 
  /* fragments tailq */
-RTE_TAILQ_HEAD(ip_pkt_list, ip_frag_pkt);
+TAILQ_HEAD(ip_pkt_list, ip_frag_pkt);
 
 /* fragmentation table statistics */
 struct __rte_cache_aligned ip_frag_tbl_stat {
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index 00bf9476de..31556f82e7 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -140,7 +140,7 @@ rte_ip_frag_table_del_expired_entries(struct 
rte_ip_frag_tbl *tbl,
 
        max_cycles = tbl->max_cycles;
 
-       RTE_TAILQ_FOREACH_SAFE(fp, &tbl->lru, lru, tmp) {
+       TAILQ_FOREACH_SAFE(fp, &tbl->lru, lru, tmp) {
                if (max_cycles + fp->start >= tms)
                        return;
 
diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_mempool.c
index 57fd282970..287cd4e331 100644
--- a/lib/mempool/rte_mempool.c
+++ b/lib/mempool/rte_mempool.c
@@ -1437,7 +1437,7 @@ void rte_mempool_walk(void (*func)(struct rte_mempool *, 
void *),
 
        rte_mcfg_mempool_read_lock();
 
-       RTE_TAILQ_FOREACH_SAFE(te, mempool_list, next, tmp_te) {
+       TAILQ_FOREACH_SAFE(te, mempool_list, next, tmp_te) {
                (*func)((struct rte_mempool *) te->data, arg);
        }
 
@@ -1505,7 +1505,7 @@ mempool_event_callback_invoke(enum rte_mempool_event 
event,
        void *tmp_te;
 
        rte_mcfg_tailq_read_lock();
-       RTE_TAILQ_FOREACH_SAFE(cb, &callback_tailq, callbacks, tmp_te) {
+       TAILQ_FOREACH_SAFE(cb, &callback_tailq, callbacks, tmp_te) {
                rte_mcfg_tailq_read_unlock();
                cb->func(event, mp, cb->user_data);
                rte_mcfg_tailq_read_lock();
diff --git a/lib/mempool/rte_mempool.h b/lib/mempool/rte_mempool.h
index 50d958c7c6..cbe74b65c3 100644
--- a/lib/mempool/rte_mempool.h
+++ b/lib/mempool/rte_mempool.h
@@ -153,7 +153,7 @@ struct rte_mempool_objsz {
  * double-frees.
  */
 struct rte_mempool_objhdr {
-       RTE_STAILQ_ENTRY(rte_mempool_objhdr) next; /**< Next in list. */
+       STAILQ_ENTRY(rte_mempool_objhdr) next; /**< Next in list. */
        struct rte_mempool *mp;          /**< The mempool owning the object. */
        rte_iova_t iova;                 /**< IO address of the object. */
 #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
@@ -164,7 +164,7 @@ struct rte_mempool_objhdr {
 /**
  * A list of object headers type
  */
-RTE_STAILQ_HEAD(rte_mempool_objhdr_list, rte_mempool_objhdr);
+STAILQ_HEAD(rte_mempool_objhdr_list, rte_mempool_objhdr);
 
 #ifdef RTE_LIBRTE_MEMPOOL_DEBUG
 
@@ -191,7 +191,7 @@ extern int rte_mempool_logtype;
 /**
  * A list of memory where objects are stored
  */
-RTE_STAILQ_HEAD(rte_mempool_memhdr_list, rte_mempool_memhdr);
+STAILQ_HEAD(rte_mempool_memhdr_list, rte_mempool_memhdr);
 
 /**
  * Callback used to free a memory chunk
@@ -206,7 +206,7 @@ typedef void (rte_mempool_memchunk_free_cb_t)(struct 
rte_mempool_memhdr *memhdr,
  * and physically contiguous.
  */
 struct rte_mempool_memhdr {
-       RTE_STAILQ_ENTRY(rte_mempool_memhdr) next; /**< Next in list. */
+       STAILQ_ENTRY(rte_mempool_memhdr) next; /**< Next in list. */
        struct rte_mempool *mp;  /**< The mempool owning the chunk */
        void *addr;              /**< Virtual address of the chunk */
        rte_iova_t iova;         /**< IO address of the chunk */
diff --git a/lib/pmu/pmu.c b/lib/pmu/pmu.c
index d372ecf4f1..ea69beab13 100644
--- a/lib/pmu/pmu.c
+++ b/lib/pmu/pmu.c
@@ -460,7 +460,7 @@ rte_pmu_fini(void)
        if (!rte_pmu.initialized)
                return;
 
-       RTE_TAILQ_FOREACH_SAFE(event, &rte_pmu.event_list, next, tmp_event) {
+       TAILQ_FOREACH_SAFE(event, &rte_pmu.event_list, next, tmp_event) {
                TAILQ_REMOVE(&rte_pmu.event_list, event, next);
                free_event(event);
        }
diff --git a/lib/power/power_cpufreq.h b/lib/power/power_cpufreq.h
index 41bfaed7bb..9847cb52db 100644
--- a/lib/power/power_cpufreq.h
+++ b/lib/power/power_cpufreq.h
@@ -147,7 +147,7 @@ typedef int (*rte_power_get_capabilities_t)(unsigned int 
lcore_id,
 
 /** Structure defining core power operations structure */
 struct rte_power_cpufreq_ops {
-       RTE_TAILQ_ENTRY(rte_power_cpufreq_ops) next;    /**< Next in list. */
+       TAILQ_ENTRY(rte_power_cpufreq_ops) next;        /**< Next in list. */
        char name[RTE_POWER_DRIVER_NAMESZ];             /**< power mgmt driver. 
*/
        rte_power_cpufreq_init_t init;                  /**< Initialize power 
management. */
        rte_power_cpufreq_exit_t exit;                  /**< Exit power 
management. */
diff --git a/lib/power/power_uncore_ops.h b/lib/power/power_uncore_ops.h
index 025a55cb97..62bc65dcc7 100644
--- a/lib/power/power_uncore_ops.h
+++ b/lib/power/power_uncore_ops.h
@@ -185,7 +185,7 @@ typedef void (*rte_power_uncore_driver_cb_t)(void);
 
 /** Structure defining uncore power operations structure */
 struct rte_power_uncore_ops {
-       RTE_TAILQ_ENTRY(rte_power_uncore_ops) next;     /**< Next in list. */
+       TAILQ_ENTRY(rte_power_uncore_ops) next;     /**< Next in list. */
        char name[RTE_POWER_UNCORE_DRIVER_NAMESZ];      /**< power mgmt driver. 
*/
        rte_power_uncore_driver_cb_t cb;                /**< Driver specific 
callbacks. */
        rte_power_uncore_init_t init;                   /**< Initialize power 
management. */
diff --git a/lib/power/rte_power_cpufreq.c b/lib/power/rte_power_cpufreq.c
index 8394cbc77f..dafacbae19 100644
--- a/lib/power/rte_power_cpufreq.c
+++ b/lib/power/rte_power_cpufreq.c
@@ -13,7 +13,7 @@ static enum power_management_env global_default_env = 
PM_ENV_NOT_SET;
 static struct rte_power_cpufreq_ops *global_cpufreq_ops;
 
 static rte_spinlock_t global_env_cfg_lock = RTE_SPINLOCK_INITIALIZER;
-static RTE_TAILQ_HEAD(, rte_power_cpufreq_ops) cpufreq_ops_list =
+static TAILQ_HEAD(, rte_power_cpufreq_ops) cpufreq_ops_list =
                        TAILQ_HEAD_INITIALIZER(cpufreq_ops_list);
 
 const char *power_env_str[] = {
@@ -55,7 +55,7 @@ rte_power_check_env_supported(enum power_management_env env)
        if (env >= RTE_DIM(power_env_str))
                return 0;
 
-       RTE_TAILQ_FOREACH(ops, &cpufreq_ops_list, next)
+       TAILQ_FOREACH(ops, &cpufreq_ops_list, next)
                if (strncmp(ops->name, power_env_str[env],
                                RTE_POWER_DRIVER_NAMESZ) == 0)
                        return ops->check_env_support();
@@ -77,7 +77,7 @@ rte_power_set_env(enum power_management_env env)
                goto out;
        }
 
-       RTE_TAILQ_FOREACH(ops, &cpufreq_ops_list, next)
+       TAILQ_FOREACH(ops, &cpufreq_ops_list, next)
                if (strncmp(ops->name, power_env_str[env],
                                RTE_POWER_DRIVER_NAMESZ) == 0) {
                        global_cpufreq_ops = ops;
@@ -123,7 +123,7 @@ rte_power_init(unsigned int lcore_id)
        POWER_LOG(INFO, "Env isn't set yet!");
 
        /* Auto detect Environment */
-       RTE_TAILQ_FOREACH(ops, &cpufreq_ops_list, next) {
+       TAILQ_FOREACH(ops, &cpufreq_ops_list, next) {
                POWER_LOG(INFO,
                        "Attempting to initialise %s cpufreq power 
management...",
                        ops->name);
diff --git a/lib/power/rte_power_uncore.c b/lib/power/rte_power_uncore.c
index b50e09a2ad..15f3e1f3ab 100644
--- a/lib/power/rte_power_uncore.c
+++ b/lib/power/rte_power_uncore.c
@@ -14,7 +14,7 @@ static enum rte_uncore_power_mgmt_env global_uncore_env = 
RTE_UNCORE_PM_ENV_NOT_
 static struct rte_power_uncore_ops *global_uncore_ops;
 
 static rte_spinlock_t global_env_cfg_lock = RTE_SPINLOCK_INITIALIZER;
-static RTE_TAILQ_HEAD(, rte_power_uncore_ops) uncore_ops_list =
+static TAILQ_HEAD(, rte_power_uncore_ops) uncore_ops_list =
                        TAILQ_HEAD_INITIALIZER(uncore_ops_list);
 
 const char *uncore_env_str[] = {
@@ -68,7 +68,7 @@ rte_power_set_uncore_env(enum rte_uncore_power_mgmt_env env)
                env = RTE_UNCORE_PM_ENV_INTEL_UNCORE;
 
        if (env < RTE_DIM(uncore_env_str)) {
-               RTE_TAILQ_FOREACH(ops, &uncore_ops_list, next)
+               TAILQ_FOREACH(ops, &uncore_ops_list, next)
                        if (strncmp(ops->name, uncore_env_str[env],
                                RTE_POWER_UNCORE_DRIVER_NAMESZ) == 0) {
                                global_uncore_env = env;
@@ -115,7 +115,7 @@ rte_power_uncore_init(unsigned int pkg, unsigned int die)
                return global_uncore_ops->init(pkg, die);
 
        /* Auto Detect Environment */
-       RTE_TAILQ_FOREACH(ops, &uncore_ops_list, next)
+       TAILQ_FOREACH(ops, &uncore_ops_list, next)
                if (ops) {
                        POWER_LOG(INFO,
                                "Attempting to initialise %s power 
management...",
diff --git a/lib/table/rte_swx_table.h b/lib/table/rte_swx_table.h
index cf7dcea8a1..b6ab2c59d7 100644
--- a/lib/table/rte_swx_table.h
+++ b/lib/table/rte_swx_table.h
@@ -73,7 +73,7 @@ struct rte_swx_table_entry {
        /** Used to facilitate the membership of this table entry to a
         * linked list.
         */
-       RTE_TAILQ_ENTRY(rte_swx_table_entry) node;
+       TAILQ_ENTRY(rte_swx_table_entry) node;
 
        /** Key value for the current entry. Array of *key_size* bytes or NULL
         * if the *key_size* for the current table is 0.
@@ -116,7 +116,7 @@ struct rte_swx_table_entry {
 };
 
 /** List of table entries. */
-RTE_TAILQ_HEAD(rte_swx_table_entry_list, rte_swx_table_entry);
+TAILQ_HEAD(rte_swx_table_entry_list, rte_swx_table_entry);
 
 /**
  * Table memory footprint get
diff --git a/lib/table/rte_swx_table_selector.h 
b/lib/table/rte_swx_table_selector.h
index ef29bdb6b0..52d4dbe568 100644
--- a/lib/table/rte_swx_table_selector.h
+++ b/lib/table/rte_swx_table_selector.h
@@ -55,7 +55,7 @@ struct rte_swx_table_selector_params {
 /** Group member parameters. */
 struct rte_swx_table_selector_member {
        /** Linked list connectivity. */
-       RTE_TAILQ_ENTRY(rte_swx_table_selector_member) node;
+       TAILQ_ENTRY(rte_swx_table_selector_member) node;
 
        /** Member ID. */
        uint32_t member_id;
@@ -65,7 +65,7 @@ struct rte_swx_table_selector_member {
 };
 
 /** List of group members. */
-RTE_TAILQ_HEAD(rte_swx_table_selector_member_list, 
rte_swx_table_selector_member);
+TAILQ_HEAD(rte_swx_table_selector_member_list, rte_swx_table_selector_member);
 
 /** Group parameters. */
 struct rte_swx_table_selector_group {
diff --git a/lib/vhost/iotlb.c b/lib/vhost/iotlb.c
index f2c275a7d7..2198eeb080 100644
--- a/lib/vhost/iotlb.c
+++ b/lib/vhost/iotlb.c
@@ -115,7 +115,7 @@ vhost_user_iotlb_pending_remove_all(struct virtio_net *dev)
 
        rte_rwlock_write_lock(&dev->iotlb_pending_lock);
 
-       RTE_TAILQ_FOREACH_SAFE(node, &dev->iotlb_pending_list, next, temp_node) 
{
+       TAILQ_FOREACH_SAFE(node, &dev->iotlb_pending_list, next, temp_node) {
                TAILQ_REMOVE(&dev->iotlb_pending_list, node, next);
                vhost_user_iotlb_pool_put(dev, node);
        }
@@ -181,7 +181,7 @@ vhost_user_iotlb_pending_remove(struct virtio_net *dev, 
uint64_t iova, uint64_t
 
        rte_rwlock_write_lock(&dev->iotlb_pending_lock);
 
-       RTE_TAILQ_FOREACH_SAFE(node, &dev->iotlb_pending_list, next,
+       TAILQ_FOREACH_SAFE(node, &dev->iotlb_pending_list, next,
                                temp_node) {
                if (node->iova < iova)
                        continue;
@@ -203,7 +203,7 @@ vhost_user_iotlb_cache_remove_all(struct virtio_net *dev)
 
        vhost_user_iotlb_wr_lock_all(dev);
 
-       RTE_TAILQ_FOREACH_SAFE(node, &dev->iotlb_list, next, temp_node) {
+       TAILQ_FOREACH_SAFE(node, &dev->iotlb_list, next, temp_node) {
                vhost_user_iotlb_clear_dump(dev, node, NULL, NULL);
 
                TAILQ_REMOVE(&dev->iotlb_list, node, next);
@@ -226,9 +226,9 @@ vhost_user_iotlb_cache_random_evict(struct virtio_net *dev)
 
        entry_idx = rte_rand() % dev->iotlb_cache_nr;
 
-       RTE_TAILQ_FOREACH_SAFE(node, &dev->iotlb_list, next, temp_node) {
+       TAILQ_FOREACH_SAFE(node, &dev->iotlb_list, next, temp_node) {
                if (!entry_idx) {
-                       struct vhost_iotlb_entry *next_node = 
RTE_TAILQ_NEXT(node, next);
+                       struct vhost_iotlb_entry *next_node = TAILQ_NEXT(node, 
next);
 
                        vhost_user_iotlb_clear_dump(dev, node, prev_node, 
next_node);
 
@@ -314,13 +314,13 @@ vhost_user_iotlb_cache_remove(struct virtio_net *dev, 
uint64_t iova, uint64_t si
 
        vhost_user_iotlb_wr_lock_all(dev);
 
-       RTE_TAILQ_FOREACH_SAFE(node, &dev->iotlb_list, next, temp_node) {
+       TAILQ_FOREACH_SAFE(node, &dev->iotlb_list, next, temp_node) {
                /* Sorted list */
                if (unlikely(iova + size < node->iova))
                        break;
 
                if (iova < node->iova + node->size) {
-                       struct vhost_iotlb_entry *next_node = 
RTE_TAILQ_NEXT(node, next);
+                       struct vhost_iotlb_entry *next_node = TAILQ_NEXT(node, 
next);
 
                        vhost_user_iotlb_clear_dump(dev, node, prev_node, 
next_node);
 
diff --git a/lib/vhost/vdpa.c b/lib/vhost/vdpa.c
index 4f2b7e0013..75c34f4d66 100644
--- a/lib/vhost/vdpa.c
+++ b/lib/vhost/vdpa.c
@@ -137,7 +137,7 @@ rte_vdpa_unregister_device(struct rte_vdpa_device *dev)
        int ret = -1;
 
        rte_spinlock_lock(&vdpa_device_list_lock);
-       RTE_TAILQ_FOREACH_SAFE(cur_dev, vdpa_device_list, next, tmp_dev) {
+       TAILQ_FOREACH_SAFE(cur_dev, vdpa_device_list, next, tmp_dev) {
                if (dev != cur_dev)
                        continue;
 
diff --git a/lib/vhost/vdpa_driver.h b/lib/vhost/vdpa_driver.h
index 42392a0d14..db640013ef 100644
--- a/lib/vhost/vdpa_driver.h
+++ b/lib/vhost/vdpa_driver.h
@@ -87,7 +87,7 @@ struct rte_vdpa_dev_ops {
  * vdpa device structure includes device address and device operations.
  */
 struct rte_vdpa_device {
-       RTE_TAILQ_ENTRY(rte_vdpa_device) next;
+       TAILQ_ENTRY(rte_vdpa_device) next;
        /** Generic device information */
        struct rte_device *device;
        /** vdpa device operations */
-- 
2.53.0

Reply via email to