master/fsm_mapping.c
changeset 660 582a90a34303
parent 635 d304ef4af542
child 758 8fa6f825eb7d
--- 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",