aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/l2cap_core.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-10-03 05:54:11 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-03 06:05:36 -0400
commitb99707d7ee887f9df8b3f7cf75e1e9dbf3206df3 (patch)
tree7b212060090d48fbbcf15daef8dc55666debba71 /net/bluetooth/l2cap_core.c
parentae4fd2d37433ba58e17adbf1694b7b66eeaec76c (diff)
Bluetooth: Drop packets on ATT fixed channel on BR/EDR
The ATT fixed channel is only valid when using LE connections. On BR/EDR it is required to go through L2CAP connection oriented channel for ATT. Drop ATT packets when they are received on a BR/EDR connection. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth/l2cap_core.c')
-rw-r--r--net/bluetooth/l2cap_core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 102a510a153a..583517e1dd43 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -6431,8 +6431,12 @@ drop:
6431static void l2cap_att_channel(struct l2cap_conn *conn, 6431static void l2cap_att_channel(struct l2cap_conn *conn,
6432 struct sk_buff *skb) 6432 struct sk_buff *skb)
6433{ 6433{
6434 struct hci_conn *hcon = conn->hcon;
6434 struct l2cap_chan *chan; 6435 struct l2cap_chan *chan;
6435 6436
6437 if (hcon->type != LE_LINK)
6438 goto drop;
6439
6436 chan = l2cap_global_chan_by_scid(BT_CONNECTED, L2CAP_CID_ATT, 6440 chan = l2cap_global_chan_by_scid(BT_CONNECTED, L2CAP_CID_ATT,
6437 conn->src, conn->dst); 6441 conn->src, conn->dst);
6438 if (!chan) 6442 if (!chan)