}
 
 static inline void l2cap_set_timer(struct l2cap_chan *chan,
-                                       struct delayed_work *work, long timeout)
+                                  struct delayed_work *work, long timeout)
 {
        BT_DBG("chan %p state %s timeout %ld", chan,
-                                       state_to_string(chan->state), timeout);
+              state_to_string(chan->state), timeout);
 
+       /* If delayed work cancelled do not hold(chan)
+          since it is already done with previous set_timer */
        if (!cancel_delayed_work(work))
                l2cap_chan_hold(chan);
+
        schedule_delayed_work(work, timeout);
 }
 
 static inline bool l2cap_clear_timer(struct l2cap_chan *chan,
-                                       struct delayed_work *work)
+                                    struct delayed_work *work)
 {
        bool ret;
 
+       /* put(chan) if delayed work cancelled otherwise it
+          is done in delayed work function */
        ret = cancel_delayed_work(work);
        if (ret)
                l2cap_chan_put(chan);