[dpdk-dev] [PATCH 11/21] net/ixgbe/base: modify loop accounting for retries

Guinan Sun guinanx.sun at intel.com
Fri Jun 12 05:24:00 CEST 2020


The condition for comparing retry against max_retry was flawed in the
do-while loops.  For the case where retry was initialized to 0 and
max_retry was initialized to 1, we'd break out of the loop at the
condition when the intent is to retry the code at least once.
Otherwise, the loop is unnecessary.  The other places have a larger
max_retry so code would get run multiple times (if necessary), but not
to the intended extent.

Signed-off-by: Jeb Cramer <jeb.j.cramer at intel.com>
Signed-off-by: Guinan Sun <guinanx.sun at intel.com>
---
 drivers/net/ixgbe/base/ixgbe_phy.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_phy.c b/drivers/net/ixgbe/base/ixgbe_phy.c
index 9bb24f1ef..823cf161e 100644
--- a/drivers/net/ixgbe/base/ixgbe_phy.c
+++ b/drivers/net/ixgbe/base/ixgbe_phy.c
@@ -143,7 +143,7 @@ s32 ixgbe_read_i2c_combined_generic_int(struct ixgbe_hw *hw, u8 addr, u16 reg,
 		else
 			DEBUGOUT("I2C byte read combined error.\n");
 		retry++;
-	} while (retry < max_retry);
+	} while (retry <= max_retry);
 
 	return IXGBE_ERR_I2C;
 }
@@ -208,7 +208,7 @@ s32 ixgbe_write_i2c_combined_generic_int(struct ixgbe_hw *hw, u8 addr, u16 reg,
 		else
 			DEBUGOUT("I2C byte write combined error.\n");
 		retry++;
-	} while (retry < max_retry);
+	} while (retry <= max_retry);
 
 	return IXGBE_ERR_I2C;
 }
@@ -2062,7 +2062,7 @@ STATIC s32 ixgbe_read_i2c_byte_generic_int(struct ixgbe_hw *hw, u8 byte_offset,
 		else
 			DEBUGOUT("I2C byte read error.\n");
 		retry++;
-	} while (retry < max_retry);
+	} while (retry <= max_retry);
 
 	return status;
 }
@@ -2165,7 +2165,7 @@ STATIC s32 ixgbe_write_i2c_byte_generic_int(struct ixgbe_hw *hw, u8 byte_offset,
 		else
 			DEBUGOUT("I2C byte write error.\n");
 		retry++;
-	} while (retry < max_retry);
+	} while (retry <= max_retry);
 
 	if (lock)
 		hw->mac.ops.release_swfw_sync(hw, swfw_mask);
-- 
2.17.1



More information about the dev mailing list