X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/42be8a4481c24e1b264eebff45813963e3c34ba8..c29d86ce91159cc6ddcb4266903f0aafe9992e01:/lincan/include/can_queue.h diff --git a/lincan/include/can_queue.h b/lincan/include/can_queue.h index b8cbb09..8821dca 100644 --- a/lincan/include/can_queue.h +++ b/lincan/include/can_queue.h @@ -547,8 +547,9 @@ void canque_edge_decref(struct canque_edge_t *edge) can_spin_lock(&outends->ends_lock); if(atomic_dec_and_test(&edge->edge_used)) { dead_fl=canque_fifo_test_and_set_fl(&edge->fifo,DEAD); - /*This should not be there, but it cannot be outside of the lock :-(*/ - canque_notify_bothends(edge,CANQUEUE_NOTIFY_NOUSR); + /* Because of former evolution of edge references + management notify of CANQUEUE_NOTIFY_NOUSR could + be moved to canque_edge_do_dead :-) */ can_spin_unlock(&outends->ends_lock); can_spin_unlock_irqrestore(&inends->ends_lock, flags); canque_edge_do_dead(edge, dead_fl);