+ Geert Uytterhoeven On Fri, Oct 13, 2023 at 09:19:35PM +0900, Yoshihiro Shimoda wrote: > The array index should not be negative, so modify the condition of > rswitch_for_each_enabled_port_continue_reverse() macro, and then > use unsigned int instead. > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > --- > drivers/net/ethernet/renesas/rswitch.c | 8 +++++--- > drivers/net/ethernet/renesas/rswitch.h | 2 +- > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c > index 112e605f104a..7640144db79b 100644 > --- a/drivers/net/ethernet/renesas/rswitch.c > +++ b/drivers/net/ethernet/renesas/rswitch.c > @@ -1405,7 +1405,8 @@ static void rswitch_ether_port_deinit_one(struct rswitch_device *rdev) > > static int rswitch_ether_port_init_all(struct rswitch_private *priv) > { > - int i, err; > + unsigned int i; > + int err; > > rswitch_for_each_enabled_port(priv, i) { > err = rswitch_ether_port_init_one(priv->rdev[i]); > @@ -1786,7 +1787,8 @@ static void rswitch_device_free(struct rswitch_private *priv, int index) > > static int rswitch_init(struct rswitch_private *priv) > { > - int i, err; > + unsigned int i; > + int err; > > for (i = 0; i < RSWITCH_NUM_PORTS; i++) > rswitch_etha_init(priv, i); Hi Shimoda-san, Immediately below this hunk, the following code appears. if (err < 0) { for (i--; i >= 0; i--) rswitch_device_free(priv, i); goto err_device_alloc; } I suspect that the for loop should be updated in a similar way to that in rswitch_for_each_enabled_port_continue_reverse as, now that i is unsigned, i >= 0 will always be true. As flagged by Smatch and Coccinelle. Otherwise this patch-set looks good to me. > @@ -1959,7 +1961,7 @@ static int renesas_eth_sw_probe(struct platform_device *pdev) > > static void rswitch_deinit(struct rswitch_private *priv) > { > - int i; > + unsigned int i; > > rswitch_gwca_hw_deinit(priv); > rcar_gen4_ptp_unregister(priv->ptp_priv); > diff --git a/drivers/net/ethernet/renesas/rswitch.h b/drivers/net/ethernet/renesas/rswitch.h > index 04f49a7a5843..27c9d3872c0e 100644 > --- a/drivers/net/ethernet/renesas/rswitch.h > +++ b/drivers/net/ethernet/renesas/rswitch.h > @@ -20,7 +20,7 @@ > else > > #define rswitch_for_each_enabled_port_continue_reverse(priv, i) \ > - for (i--; i >= 0; i--) \ > + for (; i-- > 0; ) \ > if (priv->rdev[i]->disabled) \ > continue; \ > else -- pw-bot: changes-requested