clk: tegra: bpmp: Don't crash when a clock fails to register
When registering clocks, we just skip any that fail to register (leaving a NULL hole in the clock table). However, our of_xlate function still tries to dereference each entry while looking for the clock with the requested id, causing a crash if any clocks failed to register. Add a check to of_xlate to skip any NULL clocks. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Acked-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
parent
ce397d215c
commit
f7b3182232
|
@ -586,9 +586,15 @@ static struct clk_hw *tegra_bpmp_clk_of_xlate(struct of_phandle_args *clkspec,
|
||||||
unsigned int id = clkspec->args[0], i;
|
unsigned int id = clkspec->args[0], i;
|
||||||
struct tegra_bpmp *bpmp = data;
|
struct tegra_bpmp *bpmp = data;
|
||||||
|
|
||||||
for (i = 0; i < bpmp->num_clocks; i++)
|
for (i = 0; i < bpmp->num_clocks; i++) {
|
||||||
if (bpmp->clocks[i]->id == id)
|
struct tegra_bpmp_clk *clk = bpmp->clocks[i];
|
||||||
return &bpmp->clocks[i]->hw;
|
|
||||||
|
if (!clk)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (clk->id == id)
|
||||||
|
return &clk->hw;
|
||||||
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue