On Sat, Jun 15, 2019 at 07:18:26AM -0700, Christoph Hellwig wrote: > 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? Couldn't find one. I think order on this list doesn't matter. Jason