Linux GPIO subsystem development
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Chanwoo Choi <cw00.choi@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	linux-gpio@vger.kernel.org, linux-rtc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [BUG] 6.16-rc7: lockdep failure with max77620-gpio/max77686-rtc
Date: Wed, 30 Jul 2025 18:58:45 +0100	[thread overview]
Message-ID: <aIpdVejR3Jkh9Z_I@shell.armlinux.org.uk> (raw)

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!

             reply	other threads:[~2025-07-30 17:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-30 17:58 Russell King (Oracle) [this message]
2025-07-30 19:43 ` [BUG] 6.16-rc7: lockdep failure with max77620-gpio/max77686-rtc Krzysztof Kozlowski
2025-07-31 12:18   ` Russell King (Oracle)
2025-07-31 12:31     ` Mark Brown
2025-07-31 12:43       ` Russell King (Oracle)
2025-07-31 13:18         ` Mark Brown
2025-07-31 15:57           ` Russell King (Oracle)
2025-07-31 16:16             ` Mark Brown
2025-07-31 16:28               ` Russell King (Oracle)
2025-07-31 17:03                 ` Mark Brown
2025-07-31 19:20                   ` Russell King (Oracle)
2025-07-31 19:50                     ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aIpdVejR3Jkh9Z_I@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=alexandre.belloni@bootlin.com \
    --cc=brgl@bgdev.pl \
    --cc=cw00.choi@samsung.com \
    --cc=krzk@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox