aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bluetooth/smp.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index 16c181181775..b8ecc7bd3e3b 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -282,8 +282,7 @@ static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data)
282 smp = chan->data; 282 smp = chan->data;
283 283
284 cancel_delayed_work_sync(&smp->security_timer); 284 cancel_delayed_work_sync(&smp->security_timer);
285 if (test_bit(HCI_CONN_LE_SMP_PEND, &conn->hcon->flags)) 285 schedule_delayed_work(&smp->security_timer, SMP_TIMEOUT);
286 schedule_delayed_work(&smp->security_timer, SMP_TIMEOUT);
287} 286}
288 287
289static __u8 authreq_to_seclevel(__u8 authreq) 288static __u8 authreq_to_seclevel(__u8 authreq)
@@ -375,9 +374,6 @@ static void smp_chan_destroy(struct l2cap_conn *conn)
375 BUG_ON(!smp); 374 BUG_ON(!smp);
376 375
377 cancel_delayed_work_sync(&smp->security_timer); 376 cancel_delayed_work_sync(&smp->security_timer);
378 /* In case the timeout freed the SMP context */
379 if (!chan->data)
380 return;
381 377
382 if (work_pending(&smp->distribute_work)) { 378 if (work_pending(&smp->distribute_work)) {
383 cancel_work_sync(&smp->distribute_work); 379 cancel_work_sync(&smp->distribute_work);