[PATCH v3 hmm 09/12] mm/hmm: Poison hmm_range during unregister
Christoph Hellwig
hch at infradead.org
Sat Jun 15 14:17:26 UTC 2019
> - /* Sanity check this really should not happen. */
> - if (hmm == NULL || range->end <= range->start)
> - return;
> -
> mutex_lock(&hmm->lock);
> list_del_rcu(&range->list);
> mutex_unlock(&hmm->lock);
>
> /* Drop reference taken by hmm_range_register() */
> - range->valid = false;
> mmput(hmm->mm);
> hmm_put(hmm);
> - range->hmm = NULL;
> +
> + /*
> + * The range is now invalid and the ref on the hmm is dropped, so
> + * poison the pointer. Leave other fields in place, for the caller's
> + * use.
> + */
> + range->valid = false;
> + memset(&range->hmm, POISON_INUSE, sizeof(range->hmm));
Formatting seems to be messed up. But again I don't see the value
in the poisoning, just let normal linked list debugging do its work.
The other cleanups looks fine to me.
More information about the amd-gfx
mailing list