diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2013-10-03 05:54:11 -0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-10-03 06:05:36 -0400 |
commit | b99707d7ee887f9df8b3f7cf75e1e9dbf3206df3 (patch) | |
tree | 7b212060090d48fbbcf15daef8dc55666debba71 /net/bluetooth/l2cap_core.c | |
parent | ae4fd2d37433ba58e17adbf1694b7b66eeaec76c (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.c | 4 |
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: | |||
6431 | static void l2cap_att_channel(struct l2cap_conn *conn, | 6431 | static 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) |