Bluetooth: Remove unnecessary checks after canceling SMP security timer
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 5 Sep 2014 19:19:48 +0000 (22:19 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 8 Sep 2014 17:07:55 +0000 (19:07 +0200)
The SMP security timer used to be able to modify the SMP context state
but now days it simply calls hci_disconnect(). It is therefore
unnecessary to have extra sanity checks for the SMP context after
canceling the timer.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/smp.c

index 16c1811817750c1051bc26676055f37477aa5e00..b8ecc7bd3e3b710462ab8c3606d2b6d3efdac13c 100644 (file)
@@ -282,8 +282,7 @@ static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data)
        smp = chan->data;
 
        cancel_delayed_work_sync(&smp->security_timer);
-       if (test_bit(HCI_CONN_LE_SMP_PEND, &conn->hcon->flags))
-               schedule_delayed_work(&smp->security_timer, SMP_TIMEOUT);
+       schedule_delayed_work(&smp->security_timer, SMP_TIMEOUT);
 }
 
 static __u8 authreq_to_seclevel(__u8 authreq)
@@ -375,9 +374,6 @@ static void smp_chan_destroy(struct l2cap_conn *conn)
        BUG_ON(!smp);
 
        cancel_delayed_work_sync(&smp->security_timer);
-       /* In case the timeout freed the SMP context */
-       if (!chan->data)
-               return;
 
        if (work_pending(&smp->distribute_work)) {
                cancel_work_sync(&smp->distribute_work);