[PATCH v3 hmm 06/12] mm/hmm: Hold on to the mmget for the lifetime of the range
Jason Gunthorpe
jgg at ziepe.ca
Wed Jun 19 11:34:52 UTC 2019
On Wed, Jun 19, 2019 at 01:18:58AM -0700, Christoph Hellwig wrote:
> > mutex_lock(&hmm->lock);
> > - list_del(&range->list);
> > + list_del_init(&range->list);
> > mutex_unlock(&hmm->lock);
>
> I don't see the point why this is a list_del_init - that just
> reinitializeѕ range->list, but doesn't change anything for the list
> head it was removed from. (and if the list_del_init was intended
> a later patch in your branch reverts it to plain list_del..)
Just following the instructions:
/**
* list_empty_careful - tests whether a list is empty and not being modified
* @head: the list to test
*
* Description:
* tests whether a list is empty _and_ checks that no other CPU might be
* in the process of modifying either member (next or prev)
*
* NOTE: using list_empty_careful() without synchronization
* can only be safe if the only activity that can happen
* to the list entry is list_del_init(). Eg. it cannot be used
* if another CPU could re-list_add() it.
*/
Agree it doesn't seem obvious why this is relevant when checking the
list head..
Maybe the comment is a bit misleading?
Jason
More information about the dri-devel
mailing list