summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2013-05-14 12:25:37 +0200
committerMarcel Holtmann <marcel@holtmann.org>2013-12-05 16:05:32 +0100
commita17de2fe02b1853f115a841bf707f6a75bc6da22 (patch)
treefcafef2ab8d2e61cb60a23277c54a182165a0e18
parentBluetooth: Update l2cap_global_chan_by_psm() to take a link type (diff)
downloadlinux-a17de2fe02b1853f115a841bf707f6a75bc6da22.tar.xz
linux-a17de2fe02b1853f115a841bf707f6a75bc6da22.zip
Bluetooth: Allow l2cap_chan_check_security() to be used for LE links.
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>
-rw-r--r--net/bluetooth/l2cap_core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 03b641c2f39d..510a17cefd26 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -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);