Bluetooth: Update the security level when link is encrypted
authorVinicius Costa Gomes <vinicius.gomes@openbossa.org>
Thu, 9 Jun 2011 21:50:51 +0000 (18:50 -0300)
committerJaikumar Ganesh <jaikumar@google.com>
Mon, 11 Jul 2011 18:59:22 +0000 (11:59 -0700)
If the pending security level is greater than the current security
level and the link is now encrypted, we should update the link
security level.

This is only useful for LE links, when the only event generated
when SMP is sucessful in the Encrypt Change event.

Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
include/net/bluetooth/hci_core.h

index 50dabb6ebe610eec4897dafc688e96d4310a7985..9f98124208a749eae812449cb523a9e7a2078d98 100644 (file)
@@ -747,6 +747,9 @@ static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status,
        if (conn->sec_level == BT_SECURITY_SDP)
                conn->sec_level = BT_SECURITY_LOW;
 
+       if (conn->pending_sec_level > conn->sec_level)
+               conn->sec_level = conn->pending_sec_level;
+
        hci_proto_encrypt_cfm(conn, status, encrypt);
 
        read_lock_bh(&hci_cb_list_lock);