Bluetooth: Allow l2cap_chan_check_security() to be used for LE links.
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 14 May 2013 10:25:37 +0000 (13:25 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 5 Dec 2013 15:05:32 +0000 (07:05 -0800)
With connection oriented L2CAP channels some code paths will be shared
with BR/EDR links. It is therefore necessary to allow the
l2cap_chan_check_security function to be usable also for LE links in
addition to BR/EDR ones. This means that smp_conn_security() needs to be
called instead of hci_conn_security() in the case of an LE link.

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

index 03b641c2f39d9e569e5717147e75871d128ba96d..510a17cefd262b5fc2665eb91c22d5e8337bcf28 100644 (file)
@@ -726,6 +726,9 @@ int l2cap_chan_check_security(struct l2cap_chan *chan)
        struct l2cap_conn *conn = chan->conn;
        __u8 auth_type;
 
+       if (conn->hcon->type == LE_LINK)
+               return smp_conn_security(conn->hcon, chan->sec_level);
+
        auth_type = l2cap_get_auth_type(chan);
 
        return hci_conn_security(conn->hcon, chan->sec_level, auth_type);