[PATCH 5/6] eal: deprecate RTE_TAILQ and RTE_STAILQ macro wrappers

Stephen Hemminger stephen at networkplumber.org
Thu Sep 17 19:19:43 CEST 2026


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 <stephen at networkplumber.org>
---
 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



More information about the dev mailing list