sm8250: lpass_gfm lockdep trace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Running linux-next on RB5 with lockdep enabled results in the
following backtrace:

[   37.461373] ======================================================
[   37.461376] WARNING: possible circular locking dependency detected
[   37.461379] 6.7.0-rc5-next-20231215-gdaf36fffbb8a-dirty #1313
Tainted: G     U
[   37.482615] ------------------------------------------------------
[   37.482617] kworker/3:0/31 is trying to acquire lock:
[   37.482621] ffffcaf2f5d71d68 (prepare_lock){+.+.}-{3:3}, at:
clk_prepare_lock+0x4c/0xa8
[   37.494216]
[   37.494216] but task is already holding lock:
[   37.494219] ffff579f5b149db0 (&psd->clock_mutex){+.+.}-{3:3}, at:
pm_clk_op_lock+0x70/0xd4
[   37.494236]
[   37.494236] which lock already depends on the new lock.
[   37.494236]
[   37.494239]
[   37.494239] the existing dependency chain (in reverse order) is:
[   37.494241]
[   37.494241] -> #1 (&psd->clock_mutex){+.+.}-{3:3}:
[   37.494251]        __mutex_lock+0xa0/0x77c
[   37.494261]        mutex_lock_nested+0x24/0x30
[   37.494269]        pm_clk_op_lock+0x70/0xd4
[   37.494275]        pm_clk_resume+0x50/0x17c
[   37.494281]        pm_generic_runtime_resume+0x2c/0x44
[   37.494288]        __rpm_callback+0x48/0x1ec
[   37.494294]        rpm_callback+0x6c/0x78
[   37.494300]        rpm_resume+0x4f0/0x754
[   37.494306]        __pm_runtime_resume+0x58/0xb8
[   37.494313]        clk_pm_runtime_get.part.0.isra.0+0x1c/0x88
[   37.494322]        __clk_register+0x4e8/0x8b4
[   37.494328]        devm_clk_hw_register+0x5c/0xd8
[   37.494334]        lpass_gfm_clk_driver_probe+0xf8/0x154
[   37.494343]        platform_probe+0x68/0xc0
[   37.494352]        really_probe+0x148/0x2ac
[   37.494360]        __driver_probe_device+0x78/0x12c
[   37.494366]        driver_probe_device+0x3c/0x160
[   37.494372]        __device_attach_driver+0xb8/0x138
[   37.494379]        bus_for_each_drv+0x80/0xdc
[   37.494386]        __device_attach+0x9c/0x188
[   37.494393]        device_initial_probe+0x14/0x20
[   37.494400]        bus_probe_device+0xac/0xb0
[   37.494407]        deferred_probe_work_func+0x8c/0xc8
[   37.494413]        process_one_work+0x1ec/0x51c
[   37.494422]        worker_thread+0x1ec/0x3e4
[   37.494429]        kthread+0x120/0x124
[   37.494436]        ret_from_fork+0x10/0x20
[   37.494443]
[   37.494443] -> #0 (prepare_lock){+.+.}-{3:3}:
[   37.494453]        __lock_acquire+0x12c4/0x1ebc
[   37.494461]        lock_acquire+0x1ec/0x314
[   37.679841]        __mutex_lock+0xa0/0x77c
[   37.684081]        mutex_lock_nested+0x24/0x30
[   37.684089]        clk_prepare_lock+0x4c/0xa8
[   37.684095]        clk_unprepare+0x24/0x44
[   37.684100]        pm_clk_suspend+0xa0/0x140
[   37.684106]        pm_generic_runtime_suspend+0x2c/0x44
[   37.684112]        __rpm_callback+0x48/0x1ec
[   37.684117]        rpm_callback+0x6c/0x78
[   37.684123]        rpm_suspend+0x138/0x638
[   37.684129]        pm_runtime_work+0xc4/0xc8
[   37.684134]        process_one_work+0x1ec/0x51c
[   37.684141]        worker_thread+0x1ec/0x3e4
[   37.684148]        kthread+0x120/0x124
[   37.684154]        ret_from_fork+0x10/0x20
[   37.684159]
[   37.684159] other info that might help us debug this:
[   37.684159]
[   37.684163]  Possible unsafe locking scenario:
[   37.684163]
[   37.684165]        CPU0                    CPU1
[   37.684168]        ----                    ----
[   37.684170]   lock(&psd->clock_mutex);
[   37.684176]                                lock(prepare_lock);
[   37.684181]                                lock(&psd->clock_mutex);
[   37.684187]   lock(prepare_lock);
[   37.684192]
[   37.684192]  *** DEADLOCK ***
[   37.684192]
[   37.684194] 3 locks held by kworker/3:0/31:
[   37.684198]  #0: ffff579f40d98338 ((wq_completion)pm){+.+.}-{0:0},
at: process_one_work+0x14c/0x51c
[   37.684217]  #1: ffff800080293de0
((work_completion)(&dev->power.work)){+.+.}-{0:0}, at:
process_one_work+0x14c/0x51c
[   37.684235]  #2: ffff579f5b149db0 (&psd->clock_mutex){+.+.}-{3:3},
at: pm_clk_op_lock+0x70/0xd4
[   37.684252]
[   37.684252] stack backtrace:
[   37.684255] CPU: 3 PID: 31 Comm: kworker/3:0 Tainted: G     U
      6.7.0-rc5-next-20231215-gdaf36fffbb8a-dirty #1313
[   37.684262] Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
[   37.684268] Workqueue: pm pm_runtime_work
[   37.684277] Call trace:
[   37.684279]  dump_backtrace+0x98/0xf0
[   37.684285]  show_stack+0x18/0x24
[   37.684290]  dump_stack_lvl+0x60/0xac
[   37.684299]  dump_stack+0x18/0x24
[   37.684305]  print_circular_bug+0x288/0x368
[   37.684311]  check_noncircular+0x158/0x16c
[   37.684316]  __lock_acquire+0x12c4/0x1ebc
[   37.684322]  lock_acquire+0x1ec/0x314
[   37.684327]  __mutex_lock+0xa0/0x77c
[   37.684334]  mutex_lock_nested+0x24/0x30
[   37.684340]  clk_prepare_lock+0x4c/0xa8
[   37.684346]  clk_unprepare+0x24/0x44
[   37.684351]  pm_clk_suspend+0xa0/0x140
[   37.684357]  pm_generic_runtime_suspend+0x2c/0x44
[   37.909043]  __rpm_callback+0x48/0x1ec
[   37.912918]  rpm_callback+0x6c/0x78
[   37.912925]  rpm_suspend+0x138/0x638
[   37.912931]  pm_runtime_work+0xc4/0xc8
[   37.912937]  process_one_work+0x1ec/0x51c
[   37.912944]  worker_thread+0x1ec/0x3e4
[   37.912950]  kthread+0x120/0x124
[   37.912956]  ret_from_fork+0x10/0x20
[   37.933142] wsa881x-codec sdw:1:0:0217:2110:00:4: nonexclusive
access to GPIO for powerdown
[   37.951383] qcom-soundwire 3250000.soundwire: Qualcomm Soundwire
controller v1.5.1 Registered
[   37.978677] input: Qualcomm-RB5-WSA8815-Speakers-D Headset Jack as
/devices/platform/sound/sound/card0/input2


-- 
With best wishes
Dmitry




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux