summaryrefslogtreecommitdiff
path: root/net/bluetooth/smp.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2016-01-06 17:31:06 -0800
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2016-01-06 17:31:06 -0800
commitefbc57c0e6a92083fce03927736f5d389182935b (patch)
tree2e900ae80abfd296a6f0c0c3a7e6c1ae95ae2705 /net/bluetooth/smp.c
parent4b1af853646ca893fa686701d1605998fffcc82c (diff)
parent57c80e8e5d1cddae0651e5314394e6069ebbbe3c (diff)
Merge branch 'goodix' into next
Merge several improvements to Goodix touchscreen driver: - power management support - configuration upload - axis swapping and inversion
Diffstat (limited to 'net/bluetooth/smp.c')
-rw-r--r--net/bluetooth/smp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index c91353841e40..ffed8a1d4f27 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -3027,8 +3027,13 @@ static void smp_ready_cb(struct l2cap_chan *chan)
BT_DBG("chan %p", chan);
+ /* No need to call l2cap_chan_hold() here since we already own
+ * the reference taken in smp_new_conn_cb(). This is just the
+ * first time that we tie it to a specific pointer. The code in
+ * l2cap_core.c ensures that there's no risk this function wont
+ * get called if smp_new_conn_cb was previously called.
+ */
conn->smp = chan;
- l2cap_chan_hold(chan);
if (hcon->type == ACL_LINK && test_bit(HCI_CONN_ENCRYPT, &hcon->flags))
bredr_pairing(chan);