diff options
Diffstat (limited to 'net/bluetooth/smp.c')
-rw-r--r-- | net/bluetooth/smp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c index 01117ae84f1d..a2ddae2f37d7 100644 --- a/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c | |||
@@ -2296,8 +2296,14 @@ static u8 smp_cmd_security_req(struct l2cap_conn *conn, struct sk_buff *skb) | |||
2296 | else | 2296 | else |
2297 | sec_level = authreq_to_seclevel(auth); | 2297 | sec_level = authreq_to_seclevel(auth); |
2298 | 2298 | ||
2299 | if (smp_sufficient_security(hcon, sec_level, SMP_USE_LTK)) | 2299 | if (smp_sufficient_security(hcon, sec_level, SMP_USE_LTK)) { |
2300 | /* If link is already encrypted with sufficient security we | ||
2301 | * still need refresh encryption as per Core Spec 5.0 Vol 3, | ||
2302 | * Part H 2.4.6 | ||
2303 | */ | ||
2304 | smp_ltk_encrypt(conn, hcon->sec_level); | ||
2300 | return 0; | 2305 | return 0; |
2306 | } | ||
2301 | 2307 | ||
2302 | if (sec_level > hcon->pending_sec_level) | 2308 | if (sec_level > hcon->pending_sec_level) |
2303 | hcon->pending_sec_level = sec_level; | 2309 | hcon->pending_sec_level = sec_level; |