|
@@ -860,13 +860,17 @@ int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level)
|
|
{
|
|
{
|
|
BT_DBG("hcon %p", conn);
|
|
BT_DBG("hcon %p", conn);
|
|
|
|
|
|
- if (sec_level != BT_SECURITY_HIGH)
|
|
|
|
- return 1; /* Accept if non-secure is required */
|
|
|
|
|
|
+ /* Accept if non-secure or higher security level is required */
|
|
|
|
+ if (sec_level != BT_SECURITY_HIGH && sec_level != BT_SECURITY_FIPS)
|
|
|
|
+ return 1;
|
|
|
|
|
|
- if (conn->sec_level == BT_SECURITY_HIGH)
|
|
|
|
|
|
+ /* Accept if secure or higher security level is already present */
|
|
|
|
+ if (conn->sec_level == BT_SECURITY_HIGH ||
|
|
|
|
+ conn->sec_level == BT_SECURITY_FIPS)
|
|
return 1;
|
|
return 1;
|
|
|
|
|
|
- return 0; /* Reject not secure link */
|
|
|
|
|
|
+ /* Reject not secure link */
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(hci_conn_check_secure);
|
|
EXPORT_SYMBOL(hci_conn_check_secure);
|
|
|
|
|