mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-11 07:39:47 +00:00
Bluetooth: Automatically flushable packets aren't allowed on LE links
The Bluetooth spec states that automatically flushable packets may not be sent over a LE-U link. Signed-off-by: Steven Walter <stevenrwalter@gmail.com> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
3bb30a7cdf
commit
f6af675ef5
@ -840,7 +840,10 @@ static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
|
||||
if (!skb)
|
||||
return;
|
||||
|
||||
if (lmp_no_flush_capable(conn->hcon->hdev))
|
||||
/* Use NO_FLUSH if supported or we have an LE link (which does
|
||||
* not support auto-flushing packets) */
|
||||
if (lmp_no_flush_capable(conn->hcon->hdev) ||
|
||||
conn->hcon->type == LE_LINK)
|
||||
flags = ACL_START_NO_FLUSH;
|
||||
else
|
||||
flags = ACL_START;
|
||||
@ -874,8 +877,13 @@ static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!test_bit(FLAG_FLUSHABLE, &chan->flags) &&
|
||||
lmp_no_flush_capable(hcon->hdev))
|
||||
/* Use NO_FLUSH for LE links (where this is the only option) or
|
||||
* if the BR/EDR link supports it and flushing has not been
|
||||
* explicitly requested (through FLAG_FLUSHABLE).
|
||||
*/
|
||||
if (hcon->type == LE_LINK ||
|
||||
(!test_bit(FLAG_FLUSHABLE, &chan->flags) &&
|
||||
lmp_no_flush_capable(hcon->hdev)))
|
||||
flags = ACL_START_NO_FLUSH;
|
||||
else
|
||||
flags = ACL_START;
|
||||
|
Loading…
x
Reference in New Issue
Block a user