locking/atomic, kref: Add kref_read()
Since we need to change the implementation, stop exposing internals. Provide kref_read() to read the current reference count; typically used for debug messages. Kills two anti-patterns: atomic_read(&kref->refcount) kref->refcount.counter Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
committed by
Ingo Molnar
parent
1e24edca05
commit
2c935bc572
@@ -920,7 +920,7 @@ static void chan_close_cb(struct l2cap_chan *chan)
|
||||
BT_DBG("dev %p removing %speer %p", dev,
|
||||
last ? "last " : "1 ", peer);
|
||||
BT_DBG("chan %p orig refcnt %d", chan,
|
||||
atomic_read(&chan->kref.refcount));
|
||||
kref_read(&chan->kref));
|
||||
|
||||
l2cap_chan_put(chan);
|
||||
break;
|
||||
|
||||
@@ -810,7 +810,7 @@ static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn, bool locked)
|
||||
/* AMP Manager functions */
|
||||
struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr)
|
||||
{
|
||||
BT_DBG("mgr %p orig refcnt %d", mgr, atomic_read(&mgr->kref.refcount));
|
||||
BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref));
|
||||
|
||||
kref_get(&mgr->kref);
|
||||
|
||||
@@ -833,7 +833,7 @@ static void amp_mgr_destroy(struct kref *kref)
|
||||
|
||||
int amp_mgr_put(struct amp_mgr *mgr)
|
||||
{
|
||||
BT_DBG("mgr %p orig refcnt %d", mgr, atomic_read(&mgr->kref.refcount));
|
||||
BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref));
|
||||
|
||||
return kref_put(&mgr->kref, &_mgr_destroy);
|
||||
}
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@
|
||||
void amp_ctrl_get(struct amp_ctrl *ctrl)
|
||||
{
|
||||
BT_DBG("ctrl %p orig refcnt %d", ctrl,
|
||||
atomic_read(&ctrl->kref.refcount));
|
||||
kref_read(&ctrl->kref));
|
||||
|
||||
kref_get(&ctrl->kref);
|
||||
}
|
||||
@@ -42,7 +42,7 @@ static void amp_ctrl_destroy(struct kref *kref)
|
||||
int amp_ctrl_put(struct amp_ctrl *ctrl)
|
||||
{
|
||||
BT_DBG("ctrl %p orig refcnt %d", ctrl,
|
||||
atomic_read(&ctrl->kref.refcount));
|
||||
kref_read(&ctrl->kref));
|
||||
|
||||
return kref_put(&ctrl->kref, &_ctrl_destroy);
|
||||
}
|
||||
|
||||
@@ -481,14 +481,14 @@ static void l2cap_chan_destroy(struct kref *kref)
|
||||
|
||||
void l2cap_chan_hold(struct l2cap_chan *c)
|
||||
{
|
||||
BT_DBG("chan %p orig refcnt %d", c, atomic_read(&c->kref.refcount));
|
||||
BT_DBG("chan %p orig refcnt %d", c, kref_read(&c->kref));
|
||||
|
||||
kref_get(&c->kref);
|
||||
}
|
||||
|
||||
void l2cap_chan_put(struct l2cap_chan *c)
|
||||
{
|
||||
BT_DBG("chan %p orig refcnt %d", c, atomic_read(&c->kref.refcount));
|
||||
BT_DBG("chan %p orig refcnt %d", c, kref_read(&c->kref));
|
||||
|
||||
kref_put(&c->kref, l2cap_chan_destroy);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user