|
@@ -1581,7 +1581,13 @@ static void hci_check_pending_name(struct hci_dev *hdev, struct hci_conn *conn,
|
|
|
struct discovery_state *discov = &hdev->discovery;
|
|
|
struct inquiry_entry *e;
|
|
|
|
|
|
- if (conn && conn->state == BT_CONFIG &&
|
|
|
+ /* Update the mgmt connected state if necessary. Be careful with
|
|
|
+ * conn objects that exist but are not (yet) connected however.
|
|
|
+ * Only those in BT_CONFIG or BT_CONNECTED states can be
|
|
|
+ * considered connected.
|
|
|
+ */
|
|
|
+ if (conn &&
|
|
|
+ (conn->state == BT_CONFIG || conn->state == BT_CONNECTED) &&
|
|
|
!test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags))
|
|
|
mgmt_device_connected(hdev, conn, 0, name, name_len);
|
|
|
|