diff --git a/sys/can/isotp/isotp.c b/sys/can/isotp/isotp.c index 3de2401189..5ae8a9922c 100644 --- a/sys/can/isotp/isotp.c +++ b/sys/can/isotp/isotp.c @@ -878,6 +878,7 @@ int isotp_release(struct isotp *isotp) .can_mask = 0xFFFFFFFF, }; raw_can_unsubscribe_rx(isotp->entry.ifnum, &filter, isotp_pid, isotp); + xtimer_remove(&isotp->rx_timer); if (isotp->rx.snip) { DEBUG("isotp_release: freeing rx buf\n"); @@ -887,6 +888,8 @@ int isotp_release(struct isotp *isotp) isotp->rx.state = ISOTP_IDLE; isotp->entry.target.pid = KERNEL_PID_UNDEF; + xtimer_remove(&isotp->tx_timer); + mutex_lock(&lock); LL_DELETE(isotp_list, isotp); mutex_unlock(&lock);