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

From: Maxime Ripard
Date: Fri Apr 01 2022 - 11:51:33 EST


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@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?

Thanks!
Maxime

Attachment: signature.asc
Description: PGP signature