On Thu, Jun 13, 2019 at 09:44:48PM -0300, Jason Gunthorpe wrote: > range->hmm = hmm; > kref_get(&hmm->kref); > - list_add_rcu(&range->list, &hmm->ranges); > + list_add(&range->list, &hmm->ranges); > > /* > * If there are any concurrent notifiers we have to wait for them for > @@ -934,7 +934,7 @@ void hmm_range_unregister(struct hmm_range *range) > struct hmm *hmm = range->hmm; > > mutex_lock(&hmm->lock); > - list_del_rcu(&range->list); > + list_del(&range->list); > mutex_unlock(&hmm->lock); Looks fine: Signed-off-by: Christoph Hellwig <hch@xxxxxx> Btw, is there any reason new ranges are added to the front and not the tail of the list?