On Mon, Jun 26, 2017 at 02:21:59AM +0200, Gaetan Rivet wrote:
> From: Jan Blunck <jblu...@infradead.org>
> 
> This helper allows to iterate over all registered buses and find one
> matching data used as parameter.
> 
> Signed-off-by: Jan Blunck <jblu...@infradead.org>
> Signed-off-by: Gaetan Rivet <gaetan.ri...@6wind.com>
> ---
>  lib/librte_eal/bsdapp/eal/rte_eal_version.map   |  1 +
>  lib/librte_eal/common/eal_common_bus.c          | 20 ++++++++++++
>  lib/librte_eal/common/include/rte_bus.h         | 43 
> +++++++++++++++++++++++++
>  lib/librte_eal/linuxapp/eal/rte_eal_version.map |  1 +
>  4 files changed, 65 insertions(+)
> 

Two minor suggestions below. Otherwise:

Acked-by: Bruce Richardson <bruce.richard...@intel.com>

> diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map 
> b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> index 2e48a73..ed09ab2 100644
> --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> @@ -162,6 +162,7 @@ DPDK_17.02 {
>  DPDK_17.05 {
>       global:
>  
> +     rte_bus_find;
>       rte_cpu_is_supported;
>       rte_log_dump;
>       rte_log_register;
> diff --git a/lib/librte_eal/common/eal_common_bus.c 
> b/lib/librte_eal/common/eal_common_bus.c
> index 8f9baf8..4619eb2 100644
> --- a/lib/librte_eal/common/eal_common_bus.c
> +++ b/lib/librte_eal/common/eal_common_bus.c
> @@ -145,3 +145,23 @@ rte_bus_dump(FILE *f)
>               }
>       }
>  }
> +
> +struct rte_bus *
> +rte_bus_find(rte_bus_cmp_t cmp,
> +          const void *data,
> +          const struct rte_bus *start)
> +{
> +     struct rte_bus *bus = NULL;
> +     int started = start == NULL;

Please put brackets around the "start == NULL" to improve readability.
My first reading of this I assumed it was doing multiple assignment of
both start and started to NULL. To make it extra clear, prefix the
comparison with "!!".

> +
> +     TAILQ_FOREACH(bus, &rte_bus_list, next) {
> +             if (!started) {
> +                     if (bus == start)
> +                             started = 1;
> +                     continue;
> +             }
> +             if (cmp(bus, data) == 0)
> +                     break;
> +     }
> +     return bus;
> +}

I also think the name "started" is confusing, and might be better as the
slighly longer "start_found".

Reply via email to