On 2/4/26 17:53, lirongqing wrote: > Replace list_for_each_entry_rcu() with list_for_each_entry_srcu() > when traversing the encl->mm_list protected by SRCU. This ensures > proper synchronization annotation and avoids potential lockdep > warnings about incorrect RCU usage.
Does lockdep trip on this today? > The list is protected by encl->srcu, not RCU, so the SRCU-specific > iterator with srcu_read_lock_held() annotation is required. >From a quick look, list_for_each_entry_rcu() still seems *really* common under SRCU. It also looks like list_for_each_entry_srcu() is a relatively recent (2020) addition to the kernel. So, this wasn't a bug when the SGX code went in, but started causing a problem at some point? Did lockdep add some RCU warnings or something that made this necessary? The patch seems logical and all. I just feel like I'm missing the bigger picture.

