On Wed, 12 Mar 2025 16:15:29 -0700 Stephen Hemminger <step...@networkplumber.org> wrote:
> This series adds common macros for safe iteration over lists. > It is a subset copy of the macros from FreeBSD that are > missing from the Linux header sys/queue.h > > Chose this over several other options: > - let each driver define their own as needed. > One Intel driver got it wrong, others will as well. > - rename all the queue macros to RTE_XXX variants. > Seems like useless renaming and confusion. > - Several distros have libbsd package with the correct macros. > But adding yet another dependency to DPDK would be annoying > for something this basic. > > There are more macros in FreeBSD header that could be useful, > but we can add those later as needed here. > > v3 - add a few more open coded loops that can use a macro > > Stephen Hemminger (9): > eal: add queue macro extensions from FreeBSD > net/qede: fix use after free > bus/fslmc: fix use after free > net/bnxt: fix use after free > net/iavf: replace local version of TAILQ_FOREACH_SAFE > vhost: replace open coded TAILQ_FOREACH_SAFE > raw/ifpga: use EAL version of TAILQ_FOREACH_SAFE > net/i40e: replace open coded version of LIST_FOREACH_SAFE > net/ice: replace open coded version of LIST_FOREACH_SAFE > > drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 5 +- > drivers/net/bnxt/bnxt_filter.c | 8 +- > drivers/net/intel/i40e/i40e_ethdev.c | 9 +- > drivers/net/intel/iavf/iavf_vchnl.c | 8 +- > drivers/net/intel/ice/ice_ethdev.c | 9 +- > drivers/net/qede/qede_ethdev.h | 3 +- > drivers/net/qede/qede_filter.c | 13 +- > drivers/raw/ifpga/base/ifpga_enumerate.c | 4 +- > drivers/raw/ifpga/base/opae_osdep.h | 1 + > lib/eal/include/meson.build | 3 +- > lib/eal/include/rte_queue.h | 174 +++++++++++++++++++++++ Revisiting this and wondering about naming... The file rte_queue.h is not really DPDK (ie not related to runtime environment). Thinking of calling it bsd_queue.h as a comprimise