[dpdk-stable] [PATCH v1] bus/fslmc: fix find device start condition
    Gaetan Rivet 
    gaetan.rivet at 6wind.com
       
    Thu Mar 22 11:28:44 CET 2018
    
    
  
If start is set and a device before it matches the data,
this device is returned.
Fixes: c7fe1eea8a74 ("bus: simplify finding starting point")
Cc: stable at dpdk.org
Cc: Hemant Agrawal <hemant.agrawal at nxp.com>
Cc: Shreyansh Jain <shreyansh.jain at nxp.com>
Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
---
Hi Shreyansh, Hemant,
Sorry, I did not test this.
I found this issue while working on vdev and PCI.
There is a better way to iterate on devices [1], but the gain
is really minimal and the implementation slightly more complex.
I preferred to avoid complex, as I could not test this patch.
Regards,
[1]: http://dpdk.org/ml/archives/dev/2018-March/092906.html
 drivers/bus/fslmc/fslmc_bus.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index 5ee0beb85..010dd474e 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -301,8 +301,9 @@ rte_fslmc_find_device(const struct rte_device *start, rte_dev_cmp_t cmp,
 	struct rte_dpaa2_device *dev;
 
 	TAILQ_FOREACH(dev, &rte_fslmc_bus.device_list, next) {
-		if (start && &dev->device == start) {
-			start = NULL;  /* starting point found */
+		if (start != NULL) {
+			if (&dev->device == start)
+				start = NULL;  /* starting point found */
 			continue;
 		}
 
-- 
2.11.0
    
    
More information about the stable
mailing list