Bluetooth: Make smp_chan_destroy() private to smp.c
authorJohan Hedberg <johan.hedberg@intel.com>
Mon, 11 Aug 2014 19:06:44 +0000 (22:06 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 14 Aug 2014 06:49:24 +0000 (08:49 +0200)
There are no external users of smp_chan_destroy() so make it private to
smp.c. The patch also moves the function higher up in the c-file in
order to avoid forward declarations.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/smp.c
net/bluetooth/smp.h

index 312ea5e..07ca4ce 100644 (file)
@@ -366,6 +366,56 @@ static u8 check_enc_key_size(struct l2cap_conn *conn, __u8 max_key_size)
        return 0;
 }
 
+static void smp_chan_destroy(struct l2cap_conn *conn)
+{
+       struct l2cap_chan *chan = conn->smp;
+       struct smp_chan *smp = chan->data;
+       bool complete;
+
+       BUG_ON(!smp);
+
+       cancel_delayed_work_sync(&smp->security_timer);
+       /* In case the timeout freed the SMP context */
+       if (!chan->data)
+               return;
+
+       if (work_pending(&smp->distribute_work)) {
+               cancel_work_sync(&smp->distribute_work);
+               if (!chan->data)
+                       return;
+       }
+
+       complete = test_bit(SMP_FLAG_COMPLETE, &smp->flags);
+       mgmt_smp_complete(conn->hcon, complete);
+
+       kfree(smp->csrk);
+       kfree(smp->slave_csrk);
+
+       crypto_free_blkcipher(smp->tfm_aes);
+
+       /* If pairing failed clean up any keys we might have */
+       if (!complete) {
+               if (smp->ltk) {
+                       list_del(&smp->ltk->list);
+                       kfree(smp->ltk);
+               }
+
+               if (smp->slave_ltk) {
+                       list_del(&smp->slave_ltk->list);
+                       kfree(smp->slave_ltk);
+               }
+
+               if (smp->remote_irk) {
+                       list_del(&smp->remote_irk->list);
+                       kfree(smp->remote_irk);
+               }
+       }
+
+       chan->data = NULL;
+       kfree(smp);
+       hci_conn_drop(conn->hcon);
+}
+
 static void smp_failure(struct l2cap_conn *conn, u8 reason)
 {
        struct hci_conn *hcon = conn->hcon;
@@ -812,56 +862,6 @@ static struct smp_chan *smp_chan_create(struct l2cap_conn *conn)
        return smp;
 }
 
-void smp_chan_destroy(struct l2cap_conn *conn)
-{
-       struct l2cap_chan *chan = conn->smp;
-       struct smp_chan *smp = chan->data;
-       bool complete;
-
-       BUG_ON(!smp);
-
-       cancel_delayed_work_sync(&smp->security_timer);
-       /* In case the timeout freed the SMP context */
-       if (!chan->data)
-               return;
-
-       if (work_pending(&smp->distribute_work)) {
-               cancel_work_sync(&smp->distribute_work);
-               if (!chan->data)
-                       return;
-       }
-
-       complete = test_bit(SMP_FLAG_COMPLETE, &smp->flags);
-       mgmt_smp_complete(conn->hcon, complete);
-
-       kfree(smp->csrk);
-       kfree(smp->slave_csrk);
-
-       crypto_free_blkcipher(smp->tfm_aes);
-
-       /* If pairing failed clean up any keys we might have */
-       if (!complete) {
-               if (smp->ltk) {
-                       list_del(&smp->ltk->list);
-                       kfree(smp->ltk);
-               }
-
-               if (smp->slave_ltk) {
-                       list_del(&smp->slave_ltk->list);
-                       kfree(smp->slave_ltk);
-               }
-
-               if (smp->remote_irk) {
-                       list_del(&smp->remote_irk->list);
-                       kfree(smp->remote_irk);
-               }
-       }
-
-       chan->data = NULL;
-       kfree(smp);
-       hci_conn_drop(conn->hcon);
-}
-
 int smp_user_confirm_reply(struct hci_conn *hcon, u16 mgmt_op, __le32 passkey)
 {
        struct l2cap_conn *conn = hcon->l2cap_data;
index 59a5942..cf10946 100644 (file)
@@ -128,8 +128,6 @@ bool smp_sufficient_security(struct hci_conn *hcon, u8 sec_level);
 int smp_conn_security(struct hci_conn *hcon, __u8 sec_level);
 int smp_user_confirm_reply(struct hci_conn *conn, u16 mgmt_op, __le32 passkey);
 
-void smp_chan_destroy(struct l2cap_conn *conn);
-
 bool smp_irk_matches(struct hci_dev *hdev, u8 irk[16], bdaddr_t *bdaddr);
 int smp_generate_rpa(struct hci_dev *hdev, u8 irk[16], bdaddr_t *rpa);