On Tue, Feb 18, 2025 at 12:14:53PM +0200, Ido Schimmel wrote: > + Breno who also encountered this issue Thanks. Please add the following if you feel appropriate. Reported-by: Breno Leitao <leitao@xxxxxxxxxx> > 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> Tested-by: Breno Leitao <leitao@xxxxxxxxxx>