On Thu, Nov 19, 2020 at 03:08:39PM +0800, Qinglang Miao wrote: > while running ipmi, ipmi_smi_watcher_register() caused > a suspicious RCU usage warning. > > ----- > > ============================= > WARNING: suspicious RCU usage > 5.10.0-rc3+ #1 Not tainted > ----------------------------- > drivers/char/ipmi/ipmi_msghandler.c:750 RCU-list traversed in non-reader > section!! > other info that might help us debug this: > rcu_scheduler_active = 2, debug_locks = 1 > 2 locks held by syz-executor.0/4254: > stack backtrace: > CPU: 0 PID: 4254 Comm: syz-executor.0 Not tainted 5.10.0-rc3+ #1 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1 > 04/ 01/2014 > Call Trace: > dump_stack+0x19d/0x200 > ipmi_smi_watcher_register+0x2d3/0x340 [ipmi_msghandler] > acpi_ipmi_init+0xb1/0x1000 [acpi_ipmi] > do_one_initcall+0x149/0x7e0 > do_init_module+0x1ef/0x700 > load_module+0x3467/0x4140 > __do_sys_finit_module+0x10d/0x1a0 > do_syscall_64+0x34/0x80 > entry_SYSCALL_64_after_hwframe+0x44/0xa9 > RIP: 0033:0x468ded > > ----- > > It is safe because smi_watchers_mutex is locked and srcu_read_lock > has been used, so simply pass lockdep_is_held() to the > list_for_each_entry_rcu() to suppress this warning.
You probably should use list_for_each_entry_srcu() instead of the list_for_each_entry_rcu(). This problem is still happening in 6.12-rc5. _______________________________________________ Openipmi-developer mailing list Openipmi-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openipmi-developer