Currently, vc5_pll_recalc_rate() may produce incorrect output when regmap_bulk_read() fails. The fix checks the return value of the latter function and returns 0 in case of failure.
Signed-off-by: Aditya Pakki <pakki...@umn.edu> --- drivers/clk/clk-versaclock5.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk-versaclock5.c b/drivers/clk/clk-versaclock5.c index decffb3826ec..cd76a893c594 100644 --- a/drivers/clk/clk-versaclock5.c +++ b/drivers/clk/clk-versaclock5.c @@ -413,7 +413,8 @@ static unsigned long vc5_pll_recalc_rate(struct clk_hw *hw, u32 div_int, div_frc; u8 fb[5]; - regmap_bulk_read(vc5->regmap, VC5_FEEDBACK_INT_DIV, fb, 5); + if (regmap_bulk_read(vc5->regmap, VC5_FEEDBACK_INT_DIV, fb, 5)) + return 0; div_int = (fb[0] << 4) | (fb[1] >> 4); div_frc = (fb[2] << 16) | (fb[3] << 8) | fb[4]; -- 2.17.1