linux/drivers/thermal/qcom
Dmitry Baryshkov f16beaaee2 thermal/drivers/qcom/lmh: Remove false lockdep backtrace
Annotate LMH IRQs with lockdep classes so that the lockdep doesn't
report possible recursive locking issue between LMH and GIC interrupts.

For the reference:

       CPU0
       ----
  lock(&irq_desc_lock_class);
  lock(&irq_desc_lock_class);

 *** DEADLOCK ***

Call trace:
 dump_backtrace+0x98/0xf0
 show_stack+0x18/0x24
 dump_stack_lvl+0x90/0xd0
 dump_stack+0x18/0x24
 print_deadlock_bug+0x258/0x348
 __lock_acquire+0x1078/0x1f44
 lock_acquire+0x1fc/0x32c
 _raw_spin_lock_irqsave+0x60/0x88
 __irq_get_desc_lock+0x58/0x98
 enable_irq+0x38/0xa0
 lmh_enable_interrupt+0x2c/0x38
 irq_enable+0x40/0x8c
 __irq_startup+0x78/0xa4
 irq_startup+0x78/0x168
 __enable_irq+0x70/0x7c
 enable_irq+0x4c/0xa0
 qcom_cpufreq_ready+0x20/0x2c
 cpufreq_online+0x2a8/0x988
 cpufreq_add_dev+0x80/0x98
 subsys_interface_register+0x104/0x134
 cpufreq_register_driver+0x150/0x234
 qcom_cpufreq_hw_driver_probe+0x2a8/0x388
 platform_probe+0x68/0xc0
 really_probe+0xbc/0x298
 __driver_probe_device+0x78/0x12c
 driver_probe_device+0x3c/0x160
 __device_attach_driver+0xb8/0x138
 bus_for_each_drv+0x84/0xe0
 __device_attach+0x9c/0x188
 device_initial_probe+0x14/0x20
 bus_probe_device+0xac/0xb0
 deferred_probe_work_func+0x8c/0xc8
 process_one_work+0x20c/0x62c
 worker_thread+0x1bc/0x36c
 kthread+0x120/0x124
 ret_from_fork+0x10/0x20

Fixes: 53bca371cd ("thermal/drivers/qcom: Add support for LMh driver")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20241011-lmh-lockdep-v1-1-495cbbe6fef1@linaro.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2024-11-04 15:38:29 +01:00
..
Kconfig nvmem: prefix all symbols with NVMEM_ 2022-09-24 14:54:38 +02:00
lmh.c thermal/drivers/qcom/lmh: Remove false lockdep backtrace 2024-11-04 15:38:29 +01:00
Makefile
qcom-spmi-adc-tm5.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
qcom-spmi-temp-alarm.c thermal: qcom: Use thermal_zone_get_crit_temp() in qpnp_tm_init() 2024-08-02 13:46:10 +02:00
tsens-8960.c thermal/drivers/tsens: Allow configuring min and max trips 2022-12-14 15:25:40 +01:00
tsens-v0_1.c thermal/qcom/tsens: Drop ops_v0_1 2023-10-19 17:13:12 +02:00
tsens-v1.c thermal/drivers/tsens: Make tsens_xxxx_nvmem static 2023-08-16 09:54:39 +02:00
tsens-v2.c thermal/drivers/tsens: Add suspend to RAM support for tsens 2024-04-23 12:40:29 +02:00
tsens.c thermal/drivers/qcom-tsens: Simplify with dev_err_probe() 2024-07-15 13:31:41 +02:00
tsens.h thermal/drivers/tsens: Add suspend to RAM support for tsens 2024-04-23 12:40:29 +02:00