[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <aIpdVejR3Jkh9Z_I@shell.armlinux.org.uk>
Date: Wed, 30 Jul 2025 18:58:45 +0100
From: "Russell King (Oracle)" <linux@...linux.org.uk>
To: Chanwoo Choi <cw00.choi@...sung.com>,
Krzysztof Kozlowski <krzk@...nel.org>
Cc: Alexandre Belloni <alexandre.belloni@...tlin.com>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <brgl@...ev.pl>, linux-gpio@...r.kernel.org,
linux-rtc@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [BUG] 6.16-rc7: lockdep failure with max77620-gpio/max77686-rtc
Hi,
First, I'm not sure who is responsible for the max77620-gpio driver
(it's not in MAINTAINERS) but this bug points towards a problem with
one or other of these drivers.
Here is /proc/interrupts which may help debug this:
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5
94: 1 0 0 0 0 0 max77620-
top 4 Edge max77686-rtc
95: 1 0 0 0 0 0 max77686-rtc 1 Edge rtc-alarm1
While running 6.16-rc7 on the Jetson Xavier NX platform, upon suspend,
I receive the following lockdep splat. I've added some instrumentation
into irq_set_irq_wake() which appears twice in the calltrace to print
the IRQ number and the "on" parameter to locate which interrupts are
involved in this splat. This splat is 100% reproducable.
[ 46.721367] irq_set_irq_wake: irq=95 on=1
[ 46.722067] irq_set_irq_wake: irq=94 on=1
[ 46.722181] ============================================
[ 46.722578] WARNING: possible recursive locking detected
[ 46.722852] 6.16.0-rc7-net-next+ #432 Not tainted
[ 46.722965] --------------------------------------------
[ 46.723127] rtcwake/3984 is trying to acquire lock:
[ 46.723235] ffff0000813b2c68 (&d->lock){+.+.}-{4:4}, at: regmap_irq_lock+0x18/0x24
[ 46.723452]
but task is already holding lock:
[ 46.723556] ffff00008504dc68 (&d->lock){+.+.}-{4:4}, at: regmap_irq_lock+0x18/0x24
[ 46.723780]
other info that might help us debug this:
[ 46.723903] Possible unsafe locking scenario:
[ 46.724015] CPU0
[ 46.724067] ----
[ 46.724119] lock(&d->lock);
[ 46.724212] lock(&d->lock);
[ 46.724282]
*** DEADLOCK ***
[ 46.724348] May be due to missing lock nesting notation
[ 46.724492] 6 locks held by rtcwake/3984:
[ 46.724576] #0: ffff0000825693f8 (sb_writers#3){.+.+}-{0:0}, at: vfs_write+0x184/0x350
[ 46.724902] #1: ffff00008fd7fa88 (&of->mutex#2){+.+.}-{4:4}, at: kernfs_fop_write_iter+0x104/0x1c8
[ 46.725258] #2: ffff000080a64588 (kn->active#87){.+.+}-{0:0}, at: kernfs_fop_write_iter+0x10c/0x1c8
[ 46.725609] #3: ffff8000815d4fb8 (system_transition_mutex){+.+.}-{4:4}, at: pm_suspend+0x220/0x300
[ 46.725897] #4: ffff00008500a8f8 (&dev->mutex){....}-{4:4}, at: device_suspend+0x1d8/0x630
[ 46.726173] #5: ffff00008504dc68 (&d->lock){+.+.}-{4:4}, at: regmap_irq_lock+0x18/0x24
[ 46.732435]
stack backtrace:
[ 46.734019] CPU: 3 UID: 0 PID: 3984 Comm: rtcwake Not tainted 6.16.0-rc7-net-next+ #432 PREEMPT
[ 46.734029] Hardware name: NVIDIA NVIDIA Jetson Xavier NX Developer Kit/Jetson, BIOS 6.0-37391689 08/28/2024
[ 46.734033] Call trace:
[ 46.734036] show_stack+0x18/0x24 (C)
[ 46.734070] dump_stack_lvl+0x90/0xd0
[ 46.734080] dump_stack+0x18/0x24
[ 46.734107] print_deadlock_bug+0x260/0x350
[ 46.734114] __lock_acquire+0xf28/0x2088
[ 46.734120] lock_acquire+0x19c/0x33c
[ 46.734126] __mutex_lock+0x84/0x530
[ 46.734135] mutex_lock_nested+0x24/0x30
[ 46.734155] regmap_irq_lock+0x18/0x24
[ 46.734161] __irq_get_desc_lock+0x8c/0x9c
[ 46.734170] irq_set_irq_wake+0x5c/0x1ac <== I guess IRQ 94
[ 46.734176] regmap_irq_sync_unlock+0x314/0x4f4
[ 46.734182] __irq_put_desc_unlock+0x48/0x4c
[ 46.734190] irq_set_irq_wake+0x88/0x1ac <== I guess IRQ 95
[ 46.734195] max77686_rtc_suspend+0x34/0x74
[ 46.734206] platform_pm_suspend+0x2c/0x6c
[ 46.734214] dpm_run_callback+0xa4/0x218
[ 46.734221] device_suspend+0x200/0x630
[ 46.734227] dpm_suspend+0x17c/0x2d0
[ 46.734233] dpm_suspend_start+0x74/0x7c
[ 46.734240] suspend_devices_and_enter+0x104/0x618
[ 46.734247] pm_suspend+0x1b4/0x300
[ 46.734254] state_store+0x8c/0x110
[ 46.734261] kobj_attr_store+0x18/0x2c
[ 46.734268] sysfs_kf_write+0x50/0x7c
[ 46.734275] kernfs_fop_write_iter+0x134/0x1c8
[ 46.734282] vfs_write+0x24c/0x350
[ 46.734289] ksys_write+0x58/0xec
[ 46.734295] __arm64_sys_write+0x1c/0x28
[ 46.734302] invoke_syscall.constprop.0+0x50/0xe4
[ 46.734311] do_el0_svc+0x40/0xc8
[ 46.734318] el0_svc+0x44/0x148
[ 46.734327] el0t_64_sync_handler+0xc8/0xcc
[ 46.734333] el0t_64_sync+0x19c/0x1a0
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Powered by blists - more mailing lists