# HG changeset patch # User Florian Pose # Date 1316175023 -7200 # Node ID 2ec1239216e5ff5afa138ee71709f32b4858d3c3 # Parent b91bb9b96823ddbbbe458268ae0b38dafb39eb23 Removed allow_config flag and obsolete request to OP. diff -r b91bb9b96823 -r 2ec1239216e5 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 @@ -583,30 +583,26 @@ if ((slave->current_state != slave->requested_state || slave->force_config) && !slave->error_flag) { - // Start slave configuration, if it is allowed. + // Start slave configuration down(&master->config_sem); - if (!master->allow_config) { - up(&master->config_sem); - } else { - master->config_busy = 1; - up(&master->config_sem); - - 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; + up(&master->config_sem); + + 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 @@ -899,6 +895,7 @@ } } + // scanning and setting system times complete ec_master_request_op(master); ec_fsm_master_restart(fsm); } diff -r b91bb9b96823 -r 2ec1239216e5 master/master.c --- a/master/master.c Fri Sep 16 12:44:54 2011 +0200 +++ b/master/master.c Fri Sep 16 14:10:23 2011 +0200 @@ -158,7 +158,6 @@ init_waitqueue_head(&master->scan_queue); master->config_busy = 0; - master->allow_config = 1; sema_init(&master->config_sem, 1); init_waitqueue_head(&master->config_queue); @@ -594,7 +593,6 @@ EC_MASTER_DBG(master, 1, "IDLE -> OPERATION.\n"); down(&master->config_sem); - master->allow_config = 0; // temporarily disable slave configuration if (master->config_busy) { up(&master->config_sem); @@ -655,7 +653,6 @@ out_allow: master->allow_scan = 1; - master->allow_config = 1; return ret; } @@ -2013,7 +2010,6 @@ return ret; } - master->allow_config = 1; // request the current configuration master->allow_scan = 1; // allow re-scanning on topology change master->active = 1; @@ -2087,7 +2083,6 @@ EC_MASTER_WARN(master, "Failed to restart master thread!\n"); master->allow_scan = 1; - master->allow_config = 1; master->active = 0; } diff -r b91bb9b96823 -r 2ec1239216e5 master/master.h --- a/master/master.h Fri Sep 16 12:44:54 2011 +0200 +++ b/master/master.h Fri Sep 16 14:10:23 2011 +0200 @@ -196,8 +196,6 @@ slave scanning. */ unsigned int config_busy; /**< State of slave configuration. */ - unsigned int allow_config; /**< \a True, if slave configuration is - allowed. */ struct semaphore config_sem; /**< Semaphore protecting the \a config_busy variable and the allow_config flag. */ wait_queue_head_t config_queue; /**< Queue for processes that wait for diff -r b91bb9b96823 -r 2ec1239216e5 master/slave_config.c --- a/master/slave_config.c Fri Sep 16 12:44:54 2011 +0200 +++ b/master/slave_config.c Fri Sep 16 14:10:23 2011 +0200 @@ -227,10 +227,7 @@ slave->config = sc; sc->slave = slave; - ec_slave_request_state(slave, EC_SLAVE_STATE_OP); - EC_CONFIG_DBG(sc, 1, "Attached slave %u.\n", slave->ring_position); - return 0; }