Переглянути джерело

Bluetooth: Fix setting correct src_type when connecting LE

This patch ensures that conn->src_type contains the same address type as
is used for initiating the connection while the connection attempt is in
progress. Once connected this value will be overwritten with the
identity address type.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Johan Hedberg 11 роки тому
батько
коміт
e26b1ffa11
1 змінених файлів з 2 додано та 1 видалено
  1. 2 1
      net/bluetooth/hci_conn.c

+ 2 - 1
net/bluetooth/hci_conn.c

@@ -567,6 +567,8 @@ static int hci_create_le_conn(struct hci_conn *conn)
 	if (err < 0)
 	if (err < 0)
 		return err;
 		return err;
 
 
+	conn->src_type = own_addr_type;
+
 	cp.scan_interval = cpu_to_le16(hdev->le_scan_interval);
 	cp.scan_interval = cpu_to_le16(hdev->le_scan_interval);
 	cp.scan_window = cpu_to_le16(hdev->le_scan_window);
 	cp.scan_window = cpu_to_le16(hdev->le_scan_window);
 	bacpy(&cp.peer_addr, &conn->dst);
 	bacpy(&cp.peer_addr, &conn->dst);
@@ -653,7 +655,6 @@ static struct hci_conn *hci_connect_le(struct hci_dev *hdev, bdaddr_t *dst,
 		return ERR_PTR(-ENOMEM);
 		return ERR_PTR(-ENOMEM);
 
 
 	conn->dst_type = dst_type;
 	conn->dst_type = dst_type;
-	conn->src_type = hdev->own_addr_type;
 
 
 	conn->state = BT_CONNECT;
 	conn->state = BT_CONNECT;
 	conn->out = true;
 	conn->out = true;