lockdep splat on stm32, v5.8 .. v5.17-rc1
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Wed Feb 2 09:44:30 PST 2022
Hello,
on an stm32mp1 machine (dk2) I hit the following lockdep splat:
[ 1.819383] =============================
[ 1.823384] [ BUG: Invalid wait context ]
[ 1.827393] 5.17.0-rc1 #10 Not tainted
[ 1.831138] -----------------------------
[ 1.835144] swapper/0/1 is trying to lock:
[ 1.839239] c22e9410 (syscon:110:(&syscon_config)->lock){....}-{3:3}, at: regmap_lock_spinlock+0x14/0x1c
[ 1.848733] other info that might help us debug this:
[ 1.853785] context-{5:5}
[ 1.856399] 4 locks held by swapper/0/1:
[ 1.860318] #0: c22e78d8 (&dev->mutex){....}-{4:4}, at: __driver_attach+0xec/0x1dc
[ 1.867984] #1: c25de4e8 (&dev->mutex){....}-{4:4}, at: __device_attach+0x34/0x1d8
[ 1.875650] #2: c25e993c (&desc->request_mutex){+.+.}-{4:4}, at: __setup_irq+0xac/0x8a8
[ 1.883751] #3: c25e987c (&irq_desc_lock_class){-...}-{2:2}, at: __setup_irq+0xd4/0x8a8
[ 1.891850] stack backtrace:
[ 1.894727] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.17.0-rc1 #10
[ 1.901084] Hardware name: STM32 (Device Tree Support)
[ 1.906232] unwind_backtrace from show_stack+0x18/0x1c
[ 1.911452] show_stack from dump_stack_lvl+0x58/0x70
[ 1.916506] dump_stack_lvl from __lock_acquire+0x9d0/0x31b8
[ 1.922167] __lock_acquire from lock_acquire+0x14c/0x430
[ 1.927569] lock_acquire from _raw_spin_lock_irqsave+0x4c/0x68
[ 1.933493] _raw_spin_lock_irqsave from regmap_lock_spinlock+0x14/0x1c
[ 1.940115] regmap_lock_spinlock from regmap_field_update_bits_base+0x40/0x84
[ 1.947346] regmap_field_update_bits_base from stm32_gpio_domain_activate+0x6c/0xa8
[ 1.955099] stm32_gpio_domain_activate from __irq_domain_activate_irq+0x5c/0x84
[ 1.962504] __irq_domain_activate_irq from irq_domain_activate_irq+0x34/0x48
[ 1.969647] irq_domain_activate_irq from __setup_irq+0x2d0/0x8a8
[ 1.975746] __setup_irq from request_threaded_irq+0xec/0x164
[ 1.981495] request_threaded_irq from regmap_add_irq_chip_fwnode+0x78c/0xa80
[ 1.988639] regmap_add_irq_chip_fwnode from devm_regmap_add_irq_chip_fwnode+0x88/0xe0
[ 1.996567] devm_regmap_add_irq_chip_fwnode from devm_regmap_add_irq_chip+0x58/0x60
[ 2.004320] devm_regmap_add_irq_chip from stpmic1_probe+0xf0/0x164
[ 2.010591] stpmic1_probe from i2c_device_probe+0x318/0x348
[ 2.016254] i2c_device_probe from really_probe+0x1ac/0x470
[ 2.021829] really_probe from __driver_probe_device+0xa8/0x210
[ 2.027751] __driver_probe_device from driver_probe_device+0x3c/0xcc
[ 2.034197] driver_probe_device from __device_attach_driver+0xac/0x124
[ 2.040818] __device_attach_driver from bus_for_each_drv+0x84/0xc8
[ 2.047092] bus_for_each_drv from __device_attach+0xd0/0x1d8
[ 2.052841] __device_attach from bus_probe_device+0x90/0x98
[ 2.058503] bus_probe_device from device_add+0x3c0/0x924
[ 2.063905] device_add from i2c_new_client_device+0x198/0x2cc
[ 2.069741] i2c_new_client_device from of_i2c_register_device+0x7c/0xc0
[ 2.076449] of_i2c_register_device from of_i2c_register_devices+0x8c/0x100
[ 2.083418] of_i2c_register_devices from i2c_register_adapter+0x234/0x72c
[ 2.090299] i2c_register_adapter from stm32f7_i2c_probe+0xa24/0xef0
[ 2.096659] stm32f7_i2c_probe from platform_probe+0x64/0xc4
[ 2.102321] platform_probe from really_probe+0x1ac/0x470
[ 2.107721] really_probe from __driver_probe_device+0xa8/0x210
[ 2.113644] __driver_probe_device from driver_probe_device+0x3c/0xcc
[ 2.120090] driver_probe_device from __driver_attach+0xf8/0x1dc
[ 2.126100] __driver_attach from bus_for_each_dev+0x78/0xb8
[ 2.131763] bus_for_each_dev from bus_add_driver+0x178/0x214
[ 2.137512] bus_add_driver from driver_register+0x90/0x120
[ 2.143087] driver_register from do_one_initcall+0x6c/0x394
[ 2.148751] do_one_initcall from kernel_init_freeable+0x2b4/0x318
[ 2.154936] kernel_init_freeable from kernel_init+0x1c/0x138
[ 2.160686] kernel_init from ret_from_fork+0x14/0x2c
[ 2.165737] Exception stack(0xc20e3fb0 to 0xc20e3ff8)
[ 2.170795] 3fa0: 00000000 00000000 00000000 00000000
[ 2.178985] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 2.187173] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
I tried to bisect that and found a similar splat on v5.16, v5.12 and
v5.8, so I dropped the bisect plan.
On another ARM machine (i.MX6) a coworker found a similar problem
involving GPIOs, so I wonder if there is something broken in general? I
wonder however this didn't pop up earlier?!
I didn't try to understand that yet, just want to let you know; at least
for now.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20220202/a4c0be4e/attachment.sig>
More information about the linux-arm-kernel
mailing list