diff options
author | Jaganath Kanakkassery <jaganath.k@samsung.com> | 2012-07-13 08:47:54 -0400 |
---|---|---|
committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2012-08-06 14:02:58 -0400 |
commit | 3064837289259843310b266a9422aca5f5b4b9c7 (patch) | |
tree | 8e400aa35f0da39b96139414616ee3aa804d6e5f /include/net/bluetooth/l2cap.h | |
parent | ee72d150ada90d33cc6e222fbdd7f980c16d974d (diff) |
Bluetooth: Move l2cap_chan_hold/put to l2cap_core.c
Refactor the code in order to use the l2cap_chan_destroy()
from l2cap_chan_put() under the refcnt protection.
Signed-off-by: Jaganath Kanakkassery <jaganath.k@samsung.com>
Signed-off-by: Syam Sidhardhan <s.syam@samsung.com>
Reviewed-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'include/net/bluetooth/l2cap.h')
-rw-r--r-- | include/net/bluetooth/l2cap.h | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index a7679f8913d2..a1eb6786ce54 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
@@ -671,20 +671,8 @@ enum { | |||
671 | L2CAP_EV_RECV_FRAME, | 671 | L2CAP_EV_RECV_FRAME, |
672 | }; | 672 | }; |
673 | 673 | ||
674 | static inline void l2cap_chan_hold(struct l2cap_chan *c) | 674 | void l2cap_chan_hold(struct l2cap_chan *c); |
675 | { | 675 | void l2cap_chan_put(struct l2cap_chan *c); |
676 | BT_DBG("chan %p orig refcnt %d", c, atomic_read(&c->refcnt)); | ||
677 | |||
678 | atomic_inc(&c->refcnt); | ||
679 | } | ||
680 | |||
681 | static inline void l2cap_chan_put(struct l2cap_chan *c) | ||
682 | { | ||
683 | BT_DBG("chan %p orig refcnt %d", c, atomic_read(&c->refcnt)); | ||
684 | |||
685 | if (atomic_dec_and_test(&c->refcnt)) | ||
686 | kfree(c); | ||
687 | } | ||
688 | 676 | ||
689 | static inline void l2cap_chan_lock(struct l2cap_chan *chan) | 677 | static inline void l2cap_chan_lock(struct l2cap_chan *chan) |
690 | { | 678 | { |