[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140426163537.GF18016@ZenIV.linux.org.uk>
Date: Sat, 26 Apr 2014 17:35:37 +0100
From: Al Viro <viro@...IV.linux.org.uk>
To: Lionel Debroux <lionel_debroux@...oo.fr>
Cc: linux-kernel@...r.kernel.org, kernel-janitors@...r.kernel.org
Subject: Re: [PATCH] drm: make variable named "refcount" atomic, like most
refcounts in the kernel.
On Sat, Apr 26, 2014 at 06:06:15PM +0200, Lionel Debroux wrote:
> Based on PaX.
Lovely - cargo-cult at its finest. "Most refcounts are atomic, must be
good medicine. Shaman has spoken".
> - int refcount;
> + atomic_t refcount;
... therefore, all places that modify that sucker will have to be visible
in the patch. And those are
> - ++item->refcount;
> + atomic_inc(&item->refcount);
> ref->object = item->object;
> mutex_unlock(&item->mutex);
and
> mutex_lock(&item->mutex);
> - BUG_ON(item->refcount == 0);
> + BUG_ON(atomic_read(&item->refcount) == 0);
> BUG_ON(ref->object != item->object);
> - if (--item->refcount == 0) {
> + if (atomic_dec_and_test(&item->refcount)) {
> ref->release(ref);
> item->object = NULL;
Mind explaining how could we manage to reach either without item->mutex
being held, serializing the modifications?
NAK, in case it's not obvious from the above...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists