diff -r 1448a40b5af5 -r afb40fd6018e master/fsm_master.c --- a/master/fsm_master.c Fri Sep 16 12:44:54 2011 +0200 +++ b/master/fsm_master.c Fri Sep 16 14:10:23 2011 +0200 @@ -586,28 +586,24 @@ // Start slave configuration, if it is allowed. ec_mutex_lock(&master->config_mutex); - if (!master->allow_config) { - ec_mutex_unlock(&master->config_mutex); - } else { - master->config_busy = 1; - ec_mutex_unlock(&master->config_mutex); - - if (master->debug_level) { - char old_state[EC_STATE_STRING_SIZE], - new_state[EC_STATE_STRING_SIZE]; - ec_state_string(slave->current_state, old_state, 0); - ec_state_string(slave->requested_state, new_state, 0); - EC_SLAVE_DBG(slave, 1, "Changing state from %s to %s%s.\n", - old_state, new_state, - slave->force_config ? " (forced)" : ""); - } - - fsm->idle = 0; - fsm->state = ec_fsm_master_state_configure_slave; - ec_fsm_slave_config_start(&fsm->fsm_slave_config, slave); - fsm->state(fsm); // execute immediately - return; + master->config_busy = 1; + ec_mutex_unlock(&master->config_mutex); + + if (master->debug_level) { + char old_state[EC_STATE_STRING_SIZE], + new_state[EC_STATE_STRING_SIZE]; + ec_state_string(slave->current_state, old_state, 0); + ec_state_string(slave->requested_state, new_state, 0); + EC_SLAVE_DBG(slave, 1, "Changing state from %s to %s%s.\n", + old_state, new_state, + slave->force_config ? " (forced)" : ""); } + + fsm->idle = 0; + fsm->state = ec_fsm_master_state_configure_slave; + ec_fsm_slave_config_start(&fsm->fsm_slave_config, slave); + fsm->state(fsm); // execute immediately + return; } // slave has error flag set; process next one @@ -895,6 +891,7 @@ } } + // scanning and setting system times complete ec_master_request_op(master); ec_fsm_master_restart(fsm); }