]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
clk: Don't dereference parent clock if is NULL
authorJavier Martinez Canillas <javier.martinez@collabora.co.uk>
Thu, 12 Feb 2015 13:58:28 +0000 (14:58 +0100)
committerMichael Turquette <mturquette@linaro.org>
Wed, 18 Feb 2015 17:40:01 +0000 (09:40 -0800)
The clock passed as an argument to clk_mux_determine_rate_flags()
has the CLK_SET_RATE_PARENT flag set but it has no parent, then a
NULL pointer will tried to be dereferenced.

This shouldn't happen since setting that flag for a clock with no
parent is a bug but the core should be robust to handle that case.

Fixes: 035a61c314eb3 ("clk: Make clk API return per-user struct clk instances")
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
drivers/clk/clk.c

index 5469d7714f5d092ed2a591400b182fbc2dd0cb9d..f3a7a4425242a783775b132908d7123ef32e324a 100644 (file)
@@ -800,8 +800,8 @@ clk_mux_determine_rate_flags(struct clk_hw *hw, unsigned long rate,
        if (core->flags & CLK_SET_RATE_NO_REPARENT) {
                parent = core->parent;
                if (core->flags & CLK_SET_RATE_PARENT)
-                       best = __clk_determine_rate(parent->hw, rate,
-                                                   min_rate, max_rate);
+                       best = __clk_determine_rate(parent ? parent->hw : NULL,
+                                                   rate, min_rate, max_rate);
                else if (parent)
                        best = clk_core_get_rate_nolock(parent);
                else