diff options
Diffstat (limited to 'net/bluetooth/hci_conn.c')
| -rw-r--r-- | net/bluetooth/hci_conn.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 1181db08d9d..61309b26f27 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -215,6 +215,7 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)  	conn->state = BT_OPEN;  	conn->power_save = 1; +	conn->disc_timeout = HCI_DISCONN_TIMEOUT;  	switch (type) {  	case ACL_LINK: @@ -247,6 +248,8 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)  	if (hdev->notify)  		hdev->notify(hdev, HCI_NOTIFY_CONN_ADD); +	hci_conn_init_sysfs(conn); +  	tasklet_enable(&hdev->tx_task);  	return conn; @@ -424,12 +427,9 @@ int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)  	if (sec_level == BT_SECURITY_SDP)  		return 1; -	if (sec_level == BT_SECURITY_LOW) { -		if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0) -			return hci_conn_auth(conn, sec_level, auth_type); -		else -			return 1; -	} +	if (sec_level == BT_SECURITY_LOW && +				(!conn->ssp_mode || !conn->hdev->ssp_mode)) +		return 1;  	if (conn->link_mode & HCI_LM_ENCRYPT)  		return hci_conn_auth(conn, sec_level, auth_type);  |