]> exis.tech > repos - linux.git/commit
debugobjects: Don't call fill_pool() in early boot hardirq context
authorWaiman Long <longman@redhat.com>
Fri, 5 Jun 2026 17:30:38 +0000 (13:30 -0400)
committerThomas Gleixner <tglx@kernel.org>
Sat, 6 Jun 2026 12:36:25 +0000 (14:36 +0200)
commit0d046ae106255cba5eb83b23f78ee93f3620247d
tree6ca38bcb565fa2ded41ab2f1485975c14fe3c825
parent5f41161059fd0f1bbf18c90f3180e38cc45a14eb
debugobjects: Don't call fill_pool() in early boot hardirq context

When booting a debug PREEMPT_RT kernel on an ARM64 system, a "inconsistent
{HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage" lockdep warning message was
reported to the console.

During early boot, interrupts are enabled before the scheduler is
enabled. In this window (before SYSTEM_SCHEDULING is set) interrupts can
fire and in the hard interrupt context handler attempt to fill the pool

This can lead to a deadlock when the interrupt occurred when the interrupt
hits a region which holds a lock that is required to be taken in the
allocation path.

Add a new can_fill_pool() helper and reorder the exception rule and forbid
this scenario by excluding allocations from hard interrupt context.

Fixes: 06e0ae988f6e ("debugobjects: Allow to refill the pool before SYSTEM_SCHEDULING")
Suggested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260605173038.495075-1-longman@redhat.com
lib/debugobjects.c