|
@@ -7113,8 +7113,6 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
|
|
chan->dcid = cid;
|
|
chan->dcid = cid;
|
|
|
|
|
|
if (bdaddr_type_is_le(dst_type)) {
|
|
if (bdaddr_type_is_le(dst_type)) {
|
|
- u8 role;
|
|
|
|
-
|
|
|
|
/* Convert from L2CAP channel address type to HCI address type
|
|
/* Convert from L2CAP channel address type to HCI address type
|
|
*/
|
|
*/
|
|
if (dst_type == BDADDR_LE_PUBLIC)
|
|
if (dst_type == BDADDR_LE_PUBLIC)
|
|
@@ -7123,14 +7121,15 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
|
|
dst_type = ADDR_LE_DEV_RANDOM;
|
|
dst_type = ADDR_LE_DEV_RANDOM;
|
|
|
|
|
|
if (hci_dev_test_flag(hdev, HCI_ADVERTISING))
|
|
if (hci_dev_test_flag(hdev, HCI_ADVERTISING))
|
|
- role = HCI_ROLE_SLAVE;
|
|
|
|
|
|
+ hcon = hci_connect_le(hdev, dst, dst_type,
|
|
|
|
+ chan->sec_level,
|
|
|
|
+ HCI_LE_CONN_TIMEOUT,
|
|
|
|
+ HCI_ROLE_SLAVE);
|
|
else
|
|
else
|
|
- role = HCI_ROLE_MASTER;
|
|
|
|
|
|
+ hcon = hci_connect_le_scan(hdev, dst, dst_type,
|
|
|
|
+ chan->sec_level,
|
|
|
|
+ HCI_LE_CONN_TIMEOUT);
|
|
|
|
|
|
- hcon = hci_connect_le_scan(hdev, dst, dst_type,
|
|
|
|
- chan->sec_level,
|
|
|
|
- HCI_LE_CONN_TIMEOUT,
|
|
|
|
- role);
|
|
|
|
} else {
|
|
} else {
|
|
u8 auth_type = l2cap_get_auth_type(chan);
|
|
u8 auth_type = l2cap_get_auth_type(chan);
|
|
hcon = hci_connect_acl(hdev, dst, chan->sec_level, auth_type);
|
|
hcon = hci_connect_acl(hdev, dst, chan->sec_level, auth_type);
|