Commit b8288548 authored by Zhengping Jiang's avatar Zhengping Jiang Committed by Luiz Augusto von Dentz
Browse files

Bluetooth: hci_sync: hold hdev->lock when cleanup hci_conn



When disconnecting all devices, hci_conn_failed is used to cleanup
hci_conn object when the hci_conn object cannot be aborted.
The function hci_conn_failed requires the caller holds hdev->lock.

Fixes: 9b3628d7 ("Bluetooth: hci_sync: Cleanup hci_conn if it cannot be aborted")
Signed-off-by: default avatarZhengping Jiang <jiangzp@google.com>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent a112ff24
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -5034,9 +5034,11 @@ int hci_abort_conn_sync(struct hci_dev *hdev, struct hci_conn *conn, u8 reason)
		/* Cleanup hci_conn object if it cannot be cancelled as it
		 * likelly means the controller and host stack are out of sync.
		 */
		if (err)
		if (err) {
			hci_dev_lock(hdev);
			hci_conn_failed(conn, err);

			hci_dev_unlock(hdev);
		}
		return err;
	case BT_CONNECT2:
		return hci_reject_conn_sync(hdev, conn, reason);