diff -r d7c5a958bad0 -r 582a90a34303 master/fsm_mapping.c --- a/master/fsm_mapping.c Fri Mar 16 11:23:08 2007 +0000 +++ b/master/fsm_mapping.c Fri Mar 16 13:39:19 2007 +0000 @@ -161,20 +161,23 @@ ec_fsm_mapping_t *fsm /**< mapping state machine */ ) { - do { + while (1) { if (fsm->dir > EC_DIR_INPUT) { - // no more sync managers to configure mappings for + // no more directions to configure mappings for fsm->state = ec_fsm_mapping_state_end; return; } if (!(fsm->sync = ec_slave_get_pdo_sync(fsm->slave, fsm->dir))) { - fsm->state = ec_fsm_mapping_state_error; - return; + // no sync manager found for this direction + fsm->dir++; + continue; } + fsm->dir++; - } - while (!fsm->sync->alt_mapping); + if (fsm->sync->alt_mapping) + break; + } if (fsm->slave->master->debug_level) { EC_DBG("Configuring PDO mapping for SM%u of slave %i.\n",