master/fsm_master.c
changeset 880 f6212c54a5e3
parent 872 d4e0380d63b3
child 900 f8b5c6d21705
--- a/master/fsm_master.c	Thu Apr 03 13:34:13 2008 +0000
+++ b/master/fsm_master.c	Thu Apr 03 14:08:08 2008 +0000
@@ -386,7 +386,14 @@
             continue;
         list_for_each_entry(req, &slave->config->sdo_requests, list) {
             if (req->state == EC_REQUEST_QUEUED) {
-                req->state = EC_REQUEST_BUSY;
+
+                if (ec_sdo_request_timed_out(req)) {
+                    req->state = EC_REQUEST_FAILURE;
+                    if (master->debug_level)
+                        EC_DBG("Sdo request for slave %u timed out...\n",
+                                slave->ring_position);
+                    continue;
+                }
 
                 if (slave->current_state == EC_SLAVE_STATE_INIT ||
                         slave->error_flag) {
@@ -394,6 +401,7 @@
                     continue;
                 }
 
+                req->state = EC_REQUEST_BUSY;
                 if (master->debug_level)
                     EC_DBG("Processing Sdo request for slave %u...\n",
                             slave->ring_position);