From 902a3e3728f1711cc6ba2a1b21f30ca1812d76e4 Mon Sep 17 00:00:00 2001 From: Martin Troxler Date: Thu, 16 Dec 2010 09:52:17 +0100 Subject: [PATCH] use ext_queue_sem for fsm datagram queue (instead of io_sem) --- master/master.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/master/master.c b/master/master.c index 89a383af..3c41c870 100644 --- a/master/master.c +++ b/master/master.c @@ -693,7 +693,9 @@ void ec_master_inject_fsm_datagrams( ec_datagram_t *datagram, *n; size_t queue_size = 0; + down(&master->ext_queue_sem); if (list_empty(&master->fsm_datagram_queue)) { + up(&master->ext_queue_sem); return; } list_for_each_entry(datagram, &master->datagram_queue, queue) { @@ -763,6 +765,7 @@ void ec_master_inject_fsm_datagrams( } } } + up(&master->ext_queue_sem); } /*****************************************************************************/ @@ -805,14 +808,14 @@ void ec_master_queue_fsm_datagram( { ec_datagram_t *queued_datagram; - down(&master->io_sem); + down(&master->ext_queue_sem); // check, if the datagram is already queued list_for_each_entry(queued_datagram, &master->fsm_datagram_queue, queue) { if (queued_datagram == datagram) { datagram->state = EC_DATAGRAM_QUEUED; - up(&master->io_sem); + up(&master->ext_queue_sem); return; } } @@ -829,7 +832,7 @@ void ec_master_queue_fsm_datagram( #endif datagram->jiffies_sent = jiffies; - up(&master->io_sem); + up(&master->ext_queue_sem); } /*****************************************************************************/