diff options
-rw-r--r-- | net/bluetooth/hci_event.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 68c882fd20fd..aec3b1dce1cc 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c | |||
@@ -1581,7 +1581,13 @@ static void hci_check_pending_name(struct hci_dev *hdev, struct hci_conn *conn, | |||
1581 | struct discovery_state *discov = &hdev->discovery; | 1581 | struct discovery_state *discov = &hdev->discovery; |
1582 | struct inquiry_entry *e; | 1582 | struct inquiry_entry *e; |
1583 | 1583 | ||
1584 | if (conn && conn->state == BT_CONFIG && | 1584 | /* Update the mgmt connected state if necessary. Be careful with |
1585 | * conn objects that exist but are not (yet) connected however. | ||
1586 | * Only those in BT_CONFIG or BT_CONNECTED states can be | ||
1587 | * considered connected. | ||
1588 | */ | ||
1589 | if (conn && | ||
1590 | (conn->state == BT_CONFIG || conn->state == BT_CONNECTED) && | ||
1585 | !test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) | 1591 | !test_and_set_bit(HCI_CONN_MGMT_CONNECTED, &conn->flags)) |
1586 | mgmt_device_connected(hdev, conn, 0, name, name_len); | 1592 | mgmt_device_connected(hdev, conn, 0, name, name_len); |
1587 | 1593 | ||