diff -r 16498ed938f4 -r aede068f9a74 master/fsm_master.c --- a/master/fsm_master.c Mon Mar 05 10:00:18 2007 +0000 +++ b/master/fsm_master.c Mon Mar 05 10:35:50 2007 +0000 @@ -78,6 +78,7 @@ fsm->topology_change_pending = 0; fsm->slave_states = EC_SLAVE_STATE_UNKNOWN; fsm->validate = 0; + fsm->tainted = 0; // init sub-state-machines ec_fsm_slave_init(&fsm->fsm_slave, fsm->datagram); @@ -206,6 +207,7 @@ } else { EC_WARN("Invalid slave count. Bus in tainted state.\n"); + fsm->tainted = 1; } } } @@ -640,6 +642,7 @@ // have all states been validated? if (slave->list.next == &fsm->master->slaves) { + fsm->tainted = 0; fsm->slave = list_entry(fsm->master->slaves.next, ec_slave_t, list); // start writing addresses to offline slaves ec_fsm_master_action_addresses(fsm);