[PATCH] drm: Replace kref with a simple atomic reference count

Alan Cox alan at lxorguk.ukuu.org.uk
Thu Nov 25 15:13:58 PST 2010

> void kref_get(struct kref *kref)
> {
>         WARN_ON(!atomic_read(&kref->refcount));
>         atomic_inc(&kref->refcount);
>         smp_mb__after_atomic_inc();
> }
> which causes havoc when you are trying to keep a list of unreferenced
> objects. That's all I'm trying to avoid.

You cannot have a list of unreferenced objects, the list itself is a set
of references.

You might want something to scavenge objects whose refcount is the list
only but thats not quite the same thing, and kref's are quite happy if
used that way.


More information about the dri-devel mailing list