[next] db845c: WARNING: CPU: 5 PID: 8 at drivers/clk/clk-divider.c:139 divider_recalc_rate

Naresh Kamboju naresh.kamboju at linaro.org
Fri Apr 1 11:46:48 PDT 2022


On Fri, 1 Apr 2022 at 20:41, Maxime Ripard <maxime at cerno.tech> wrote:
>
> Hi,
>
> On Thu, Mar 31, 2022 at 05:33:57PM +0530, Naresh Kamboju wrote:
> > Following kernel warning noticed on db845c while booting linux next-20220331.
> >
> > metadata:
> >   git_ref: master
> >   git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
> >   git_sha: fdcbcd1348f4ef713668bae1b0fa9774e1811205
> >   git_describe: next-20220331
> >   kernel_version: 5.17.0
> >   kernel-config: https://builds.tuxbuild.com/278RLnhgJL7XdlJbcbv07jiwbYB/config
> >
> > Boot log:
> > [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x517f803c]
> > [    0.000000] Linux version 5.17.0-next-20220331 (tuxmake at tuxmake)
> > (aarch64-linux-gnu-gcc (Debian 11.2.0-18) 11.2.0, GNU ld (GNU Binutils
> > for Debian) 2.38) #1 SMP PREEMPT @1648699852
> > [    0.000000] Machine model: Thundercomm Dragonboard 845c
> > <trim>
> > [    8.131366] ------------[ cut here ]------------
> > [    8.131374] dsi0_pll_bit_clk: Zero divisor and CLK_DIVIDER_ALLOW_ZERO not set
> > [    8.131387] WARNING: CPU: 5 PID: 8 at drivers/clk/clk-divider.c:139
> > divider_recalc_rate+0x8c/0xc0
> > [    8.131398] Modules linked in: qcom_spmi_adc5 snd_soc_sdm845
> > qcom_vadc_common qcom_spmi_temp_alarm qcom_pon crct10dif_ce rtc_pm8xxx
> > snd_soc_rt5663 msm snd_soc_qcom_common gpu_sched snd_soc_rl6231
> > soundwire_bus reset_qcom_pdc drm_dp_helper qcom_camss hci_uart
> > videobuf2_dma_sg btqca v4l2_fwnode venus_core ath10k_snoc v4l2_async
> > btbcm ath10k_core i2c_qcom_geni v4l2_mem2mem videobuf2_memops
> > videobuf2_v4l2 ath bluetooth camcc_sdm845 videobuf2_common
> > spi_geni_qcom i2c_qcom_cci qcom_rng mac80211 xhci_pci qcom_q6v5_mss
> > xhci_pci_renesas cfg80211 icc_osm_l3 slim_qcom_ngd_ctrl qcom_wdt
> > rfkill qrtr lmh pdr_interface display_connector slimbus qcom_q6v5_pas
> > drm_kms_helper qcom_pil_info qcom_q6v5 qcom_sysmon qcom_common
> > qcom_glink_smem qmi_helpers drm mdt_loader socinfo rmtfs_mem fuse
> > [    8.131462] CPU: 5 PID: 8 Comm: kworker/u16:0 Not tainted
> > 5.17.0-next-20220331 #1
> > [    8.131465] Hardware name: Thundercomm Dragonboard 845c (DT)
> > [    8.131467] Workqueue: events_unbound deferred_probe_work_func
> > [    8.131475] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> > [    8.131477] pc : divider_recalc_rate+0x8c/0xc0
> > [    8.131479] lr : divider_recalc_rate+0x8c/0xc0
> > [    8.131481] sp : ffff8000080936c0
> > [    8.131482] x29: ffff8000080936c0 x28: ffff781940e58d00 x27: ffffa7f3f1bc6d38
> > [    8.131485] x26: ffffa7f3f1bc6cf8 x25: 0000000000000000 x24: ffffffffffffffff
> > [    8.131488] x23: ffff781947e8a400 x22: 000000003b9aca50 x21: ffff781940be0800
> > [    8.131491] x20: ffff781947e8a800 x19: 000000003b9aca50 x18: 0000000000000000
> > [    8.131494] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
> > [    8.131497] x14: ffff7819bd718000 x13: 0a74657320746f6e x12: 204f52455a5f574f
> > [    8.131500] x11: 4c4c415f52454449 x10: 5649445f4b4c4320 x9 : ffffa7f3f011de84
> > [    8.131502] x8 : 445f4b4c4320646e x7 : 6120726f73697669 x6 : 0000000000000001
> > [    8.131505] x5 : ffffa7f3f288f000 x4 : ffffa7f3f288f2d0 x3 : 0000000000000000
> > [    8.131508] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff7819402c7000
> > [    8.131511] Call trace:
> > [    8.131512]  divider_recalc_rate+0x8c/0xc0
> > [    8.131513]  clk_divider_recalc_rate+0x64/0x90
> > [    8.131515]  clk_recalc+0x40/0xb0
> > [    8.131519]  clk_calc_subtree+0x58/0x90
> > [    8.131521]  clk_calc_subtree+0x70/0x90
> > [    8.131523]  clk_calc_new_rates+0x150/0x290
> > [    8.131526]  clk_calc_new_rates+0x100/0x290
> > [    8.131528]  clk_calc_new_rates+0x100/0x290
> > [    8.131530]  clk_calc_new_rates+0x100/0x290
> > [    8.131533]  clk_core_set_rate_nolock+0xa0/0x2a4
> > [    8.131535]  clk_set_rate_range_nolock.part.0+0xbc/0x2a0
> > [    8.131538]  __clk_put+0x70/0x140
> > [    8.131540]  clk_put+0x1c/0x30
> > [    8.131543]  of_clk_set_defaults+0x140/0x3c0
> > [    8.131546]  platform_probe+0x48/0xf0
> > [    8.131548]  really_probe+0x184/0x3d0
> > [    8.131550]  __driver_probe_device+0x11c/0x190
> > [    8.131553]  driver_probe_device+0x44/0xf4
> > [    8.131556]  __device_attach_driver+0xa4/0x140
> > [    8.131558]  bus_for_each_drv+0x84/0xe0
> > [    8.131561]  __device_attach+0xe4/0x1c0
> > [    8.131563]  device_initial_probe+0x20/0x30
> > [    8.131565]  bus_probe_device+0xa4/0xb0
> > [    8.131567]  deferred_probe_work_func+0xa8/0xfc
> > [    8.131570]  process_one_work+0x1dc/0x450
> > [    8.131575]  worker_thread+0x154/0x450
> > [    8.131577]  kthread+0x100/0x110
> > [    8.131579]  ret_from_fork+0x10/0x20
> > [    8.131584] ---[ end trace 0000000000000000 ]---
> > [    8.131588] ------------[ cut here ]------------
>
> I'm not sure if it's feasible, but if it is, it looks like something
> that could be fixed by the patch pasted here:
>
> https://lore.kernel.org/linux-clk/20220401122736.5yvanksa4pla7uql@houat/
> Could you test it?

I have tested the single line patch and reported problems not fixed.


--->8---

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 91f863b7a824..ee5a0223e47d 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2599,6 +2599,8 @@ static int clk_core_set_parent_nolock(struct
clk_core *core,
  } else {
  __clk_recalc_rates(core, POST_RATE_CHANGE);
  __clk_recalc_accuracies(core);
+
+ core->req_rate = core->rate;
  }


- Naresh



More information about the linux-arm-kernel mailing list