> -     /* 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.
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to