Bluetooth: Move SMP (de)initialization to smp.c
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 8 Aug 2014 06:32:52 +0000 (09:32 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 14 Aug 2014 06:49:18 +0000 (08:49 +0200)
As preparation for moving SMP to use l2cap_chan infrastructure we need
to move the (de)initialization functions to smp.c (where they'll
eventually need access to the local L2CAP channel callbacks).

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

index 9eb2869..88575a6 100644 (file)
@@ -1764,34 +1764,6 @@ static void hci_init4_req(struct hci_request *req, unsigned long opt)
        }
 }
 
-static int hci_register_smp(struct hci_dev *hdev)
-{
-       int err;
-
-       BT_DBG("%s", hdev->name);
-
-       hdev->tfm_aes = crypto_alloc_blkcipher("ecb(aes)", 0,
-                                              CRYPTO_ALG_ASYNC);
-       if (IS_ERR(hdev->tfm_aes)) {
-               BT_ERR("Unable to create crypto context");
-               err = PTR_ERR(hdev->tfm_aes);
-               hdev->tfm_aes = NULL;
-               return err;
-       }
-
-       return 0;
-}
-
-static void hci_unregister_smp(struct hci_dev *hdev)
-{
-       BT_DBG("%s", hdev->name);
-
-       if (hdev->tfm_aes) {
-               crypto_free_blkcipher(hdev->tfm_aes);
-               hdev->tfm_aes = NULL;
-       }
-}
-
 static int __hci_init(struct hci_dev *hdev)
 {
        int err;
@@ -1927,7 +1899,7 @@ static int __hci_init(struct hci_dev *hdev)
                                   hdev->debugfs,
                                   &hdev->discov_interleaved_timeout);
 
-               hci_register_smp(hdev);
+               smp_register(hdev);
        }
 
        return 0;
@@ -4224,7 +4196,7 @@ void hci_unregister_dev(struct hci_dev *hdev)
                rfkill_destroy(hdev->rfkill);
        }
 
-       hci_unregister_smp(hdev);
+       smp_unregister(hdev);
 
        device_del(&hdev->dev);
 
index 33016ec..ab07649 100644 (file)
@@ -1455,3 +1455,29 @@ int smp_distribute_keys(struct l2cap_conn *conn)
 
        return 0;
 }
+
+int smp_register(struct hci_dev *hdev)
+{
+       BT_DBG("%s", hdev->name);
+
+       hdev->tfm_aes = crypto_alloc_blkcipher("ecb(aes)", 0,
+                                              CRYPTO_ALG_ASYNC);
+       if (IS_ERR(hdev->tfm_aes)) {
+               int err = PTR_ERR(hdev->tfm_aes);
+               BT_ERR("Unable to create crypto context");
+               hdev->tfm_aes = NULL;
+               return err;
+       }
+
+       return 0;
+}
+
+void smp_unregister(struct hci_dev *hdev)
+{
+       BT_DBG("%s", hdev->name);
+
+       if (hdev->tfm_aes) {
+               crypto_free_blkcipher(hdev->tfm_aes);
+               hdev->tfm_aes = NULL;
+       }
+}
index 796f4f4..6e29359 100644 (file)
@@ -136,4 +136,7 @@ bool smp_irk_matches(struct crypto_blkcipher *tfm, u8 irk[16],
                     bdaddr_t *bdaddr);
 int smp_generate_rpa(struct crypto_blkcipher *tfm, u8 irk[16], bdaddr_t *rpa);
 
+int smp_register(struct hci_dev *hdev);
+void smp_unregister(struct hci_dev *hdev);
+
 #endif /* __SMP_H */