Bluetooth: Call l2cap_le_conn_ready after notifying channels
For most cases it makes no difference whether l2cap_le_conn_ready() is called before or after calling the channel ready() callbacks, however for upcoming SMP code we need this as the ready() callback initializes certain structures that a call to smp_conn_security() from l2cap_le_conn_ready() depends on. Therefore, move the call to l2cap_le_conn_ready() after iterating through and notifying channels. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
72847ce021
commit
79a0572736
1 changed files with 3 additions and 3 deletions
|
@ -1464,9 +1464,6 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
|
||||||
|
|
||||||
BT_DBG("conn %p", conn);
|
BT_DBG("conn %p", conn);
|
||||||
|
|
||||||
if (hcon->type == LE_LINK)
|
|
||||||
l2cap_le_conn_ready(conn);
|
|
||||||
|
|
||||||
mutex_lock(&conn->chan_lock);
|
mutex_lock(&conn->chan_lock);
|
||||||
|
|
||||||
list_for_each_entry(chan, &conn->chan_l, list) {
|
list_for_each_entry(chan, &conn->chan_l, list) {
|
||||||
|
@ -1492,6 +1489,9 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
|
||||||
|
|
||||||
mutex_unlock(&conn->chan_lock);
|
mutex_unlock(&conn->chan_lock);
|
||||||
|
|
||||||
|
if (hcon->type == LE_LINK)
|
||||||
|
l2cap_le_conn_ready(conn);
|
||||||
|
|
||||||
queue_work(hcon->hdev->workqueue, &conn->pending_rx_work);
|
queue_work(hcon->hdev->workqueue, &conn->pending_rx_work);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue