clk: ti: autoidle: add checks against NULL pointer reference
authorTero Kristo <t-kristo@ti.com>
Mon, 7 Sep 2020 08:25:58 +0000 (11:25 +0300)
committerStephen Boyd <sboyd@kernel.org>
Tue, 22 Sep 2020 20:00:07 +0000 (13:00 -0700)
The clk pointer passed to omap2_clk_(deny|allow)_idle can be NULL, so
add checks for this.

Reported-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Link: https://lore.kernel.org/r/20200907082600.454-2-t-kristo@ti.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/ti/autoidle.c

index 1cae226..f6f8a40 100644 (file)
@@ -82,7 +82,12 @@ static int _omap2_clk_allow_idle(struct clk_hw_omap *clk)
  */
 int omap2_clk_deny_idle(struct clk *clk)
 {
-       struct clk_hw *hw = __clk_get_hw(clk);
+       struct clk_hw *hw;
+
+       if (!clk)
+               return -EINVAL;
+
+       hw = __clk_get_hw(clk);
 
        if (omap2_clk_is_hw_omap(hw)) {
                struct clk_hw_omap *c = to_clk_hw_omap(hw);
@@ -101,7 +106,12 @@ int omap2_clk_deny_idle(struct clk *clk)
  */
 int omap2_clk_allow_idle(struct clk *clk)
 {
-       struct clk_hw *hw = __clk_get_hw(clk);
+       struct clk_hw *hw;
+
+       if (!clk)
+               return -EINVAL;
+
+       hw = __clk_get_hw(clk);
 
        if (omap2_clk_is_hw_omap(hw)) {
                struct clk_hw_omap *c = to_clk_hw_omap(hw);