diff options
| author | Waiman Long <longman@redhat.com> | 2026-06-05 13:30:38 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@kernel.org> | 2026-06-06 14:36:25 +0200 |
| commit | 0d046ae106255cba5eb83b23f78ee93f3620247d (patch) | |
| tree | 6ca38bcb565fa2ded41ab2f1485975c14fe3c825 /include/uapi/linux | |
| parent | 5f41161059fd0f1bbf18c90f3180e38cc45a14eb (diff) | |
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
Diffstat (limited to 'include/uapi/linux')
0 files changed, 0 insertions, 0 deletions
