diff -r 9b395c5646ab -r f6212c54a5e3 master/fsm_master.c --- 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);