android_kernel_samsung_a7y1.../drivers/clk/qcom
Douglas Anderson 99473563ac clk: qcom: rcg2: Don't crash if our parent can't be found; return an error
[ Upstream commit 908b050114d8fefdddc57ec9fbc213c3690e7f5f ]

When I got my clock parenting slightly wrong I ended up with a crash
that looked like this:

  Unable to handle kernel NULL pointer dereference at virtual
  address 0000000000000000
  ...
  pc : clk_hw_get_rate+0x14/0x44
  ...
  Call trace:
   clk_hw_get_rate+0x14/0x44
   _freq_tbl_determine_rate+0x94/0xfc
   clk_rcg2_determine_rate+0x2c/0x38
   clk_core_determine_round_nolock+0x4c/0x88
   clk_core_round_rate_nolock+0x6c/0xa8
   clk_core_round_rate_nolock+0x9c/0xa8
   clk_core_set_rate_nolock+0x70/0x180
   clk_set_rate+0x3c/0x6c
   of_clk_set_defaults+0x254/0x360
   platform_drv_probe+0x28/0xb0
   really_probe+0x120/0x2dc
   driver_probe_device+0x64/0xfc
   device_driver_attach+0x4c/0x6c
   __driver_attach+0xac/0xc0
   bus_for_each_dev+0x84/0xcc
   driver_attach+0x2c/0x38
   bus_add_driver+0xfc/0x1d0
   driver_register+0x64/0xf8
   __platform_driver_register+0x4c/0x58
   msm_drm_register+0x5c/0x60
   ...

It turned out that clk_hw_get_parent_by_index() was returning NULL and
we weren't checking.  Let's check it so that we don't crash.

Fixes: ac269395cdd8 ("clk: qcom: Convert to clk_hw based provider APIs")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Link: https://lkml.kernel.org/r/20200203103049.v4.1.I7487325fe8e701a68a07d3be8a6a4b571eca9cfa@changeid
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-07 13:56:02 +02:00
..
clk-branch.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-branch.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-pll.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-pll.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-rcg.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-rcg.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-rcg2.c clk: qcom: rcg2: Don't crash if our parent can't be found; return an error 2020-04-07 13:56:02 +02:00
clk-regmap-divider.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-regmap-divider.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-regmap-mux.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-regmap-mux.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-regmap.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
clk-regmap.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
common.c clk: qcom: Allow constant ratio freq tables for rcg 2020-04-07 13:23:05 +02:00
common.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcc-apq8084.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcc-ipq806x.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcc-msm8660.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcc-msm8916.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcc-msm8960.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcc-msm8974.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gdsc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gdsc.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Kconfig A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lcc-ipq806x.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lcc-msm8960.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Makefile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mmcc-apq8084.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mmcc-msm8960.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mmcc-msm8974.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
reset.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
reset.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30