clk: at91: clk-generated: check best_rate against ranges
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Wed, 22 Jul 2020 07:38:10 +0000 (10:38 +0300)
committerStephen Boyd <sboyd@kernel.org>
Fri, 24 Jul 2020 09:18:47 +0000 (02:18 -0700)
Check best_rate against available clock ranges.

Fixes: df70aeef6083 ("clk: at91: add generated clock driver")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/1595403506-8209-3-git-send-email-claudiu.beznea@microchip.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/at91/clk-generated.c

index 995a131..f8e557e 100644 (file)
@@ -185,8 +185,8 @@ end:
                 __clk_get_name((req->best_parent_hw)->clk),
                 req->best_parent_rate);
 
-       if (best_rate < 0)
-               return best_rate;
+       if (best_rate < 0 || (gck->range.max && best_rate > gck->range.max))
+               return -EINVAL;
 
        req->rate = best_rate;
        return 0;