ssb: Fix division by zero issue in ssb_calc_clock_rate
authorRand Deeb <rand.sec96@gmail.com>
Mon, 4 Sep 2023 23:23:46 +0000 (02:23 +0300)
committerKalle Valo <kvalo@kernel.org>
Thu, 7 Sep 2023 06:00:05 +0000 (09:00 +0300)
In ssb_calc_clock_rate(), there is a potential issue where the value of
m1 could be zero due to initialization using clkfactor_f6_resolv(). This
situation raised concerns about the possibility of a division by zero
error.

We fixed it by following the suggestions provided by Larry Finger
<Larry.Finger@lwfinger.net> and Michael Büsch <m@bues.ch>. The fix
involves returning a value of 1 instead of 0 in clkfactor_f6_resolv().
This modification ensures the proper functioning of the code and
eliminates the risk of division by zero errors.

Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Michael Büsch <m@bues.ch>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230904232346.34991-1-rand.sec96@gmail.com
drivers/ssb/main.c

index ab080cf26c9fff7dc19b738e326df160913c866d..b9934b9c2d708511a29d3a30eb994f27867f2bea 100644 (file)
@@ -837,7 +837,7 @@ static u32 clkfactor_f6_resolve(u32 v)
        case SSB_CHIPCO_CLK_F6_7:
                return 7;
        }
-       return 0;
+       return 1;
 }
 
 /* Calculate the speed the backplane would run at a given set of clockcontrol values */