summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiulio Benetti <giulio.benetti@benettiengineering.com>2020-01-17 13:06:41 +0100
committerLukasz Majewski <lukma@denx.de>2020-01-26 21:57:08 +0100
commitd37ecaba88cc7482d9481a6ee7de84ff454ede4a (patch)
treeb507dcfa7009378c80e033acc2cb8b225c885ebc
parent3391e7772933da74b488c761a2e444b9899cbd2a (diff)
downloadu-boot-d37ecaba88cc7482d9481a6ee7de84ff454ede4a.tar.gz
clk: imx: pllv3: fix potential 'divide by zero' in av_get_rate()
Guard 'mfd==0' to prevent 'divide by zero' issue in clk_pplv3_av_get_rate(). If it is 0, let's return with EIO since mfd should never be 0 at all. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
-rw-r--r--drivers/clk/imx/clk-pllv3.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c
index a540a5b68c..72e6750615 100644
--- a/drivers/clk/imx/clk-pllv3.c
+++ b/drivers/clk/imx/clk-pllv3.c
@@ -163,6 +163,9 @@ static ulong clk_pllv3_av_get_rate(struct clk *clk)
u32 div = readl(pll->base) & pll->div_mask;
u64 temp64 = (u64)parent_rate;
+ if (mfd == 0)
+ return -EIO;
+
temp64 *= mfn;
do_div(temp64, mfd);