+ Breno who also encountered this issue On Tue, Feb 18, 2025 at 10:24:21AM +0800, Lu Baolu wrote: > Commit <d74169ceb0d2> ("iommu/vt-d: Allocate DMAR fault interrupts > locally") moved the call to enable_drhd_fault_handling() to a code > path that does not hold any lock while traversing the drhd list. Fix > it by ensuring the dmar_global_lock lock is held when traversing the > drhd list. > > Without this fix, the following warning is triggered: > ============================= > WARNING: suspicious RCU usage > 6.14.0-rc3 #55 Not tainted > ----------------------------- > drivers/iommu/intel/dmar.c:2046 RCU-list traversed in non-reader section!! > other info that might help us debug this: > rcu_scheduler_active = 1, debug_locks = 1 > 2 locks held by cpuhp/1/23: > #0: ffffffff84a67c50 (cpu_hotplug_lock){++++}-{0:0}, at: cpuhp_thread_fun+0x87/0x2c0 > #1: ffffffff84a6a380 (cpuhp_state-up){+.+.}-{0:0}, at: cpuhp_thread_fun+0x87/0x2c0 > stack backtrace: > CPU: 1 UID: 0 PID: 23 Comm: cpuhp/1 Not tainted 6.14.0-rc3 #55 > Call Trace: > <TASK> > dump_stack_lvl+0xb7/0xd0 > lockdep_rcu_suspicious+0x159/0x1f0 > ? __pfx_enable_drhd_fault_handling+0x10/0x10 > enable_drhd_fault_handling+0x151/0x180 > cpuhp_invoke_callback+0x1df/0x990 > cpuhp_thread_fun+0x1ea/0x2c0 > smpboot_thread_fn+0x1f5/0x2e0 > ? __pfx_smpboot_thread_fn+0x10/0x10 > kthread+0x12a/0x2d0 > ? __pfx_kthread+0x10/0x10 > ret_from_fork+0x4a/0x60 > ? __pfx_kthread+0x10/0x10 > ret_from_fork_asm+0x1a/0x30 > </TASK> > > Simply holding the lock in enable_drhd_fault_handling() will trigger a > lock order splat. Avoid holding the dmar_global_lock when calling > iommu_device_register(), which starts the device probe process. > > Fixes: d74169ceb0d2 ("iommu/vt-d: Allocate DMAR fault interrupts locally") > Reported-by: Ido Schimmel <idosch@xxxxxxxxxx> > Closes: https://lore.kernel.org/linux-iommu/Zx9OwdLIc_VoQ0-a@xxxxxxxxxxxxxxxx/ > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> Thanks for the fix. I tested it and the warning is gone. Tested-by: Ido Schimmel <idosch@xxxxxxxxxx>