master/master.c
changeset 1998 0330fdcbdd1f
parent 1995 7d748d9cf9e8
child 1999 5f1269a71588
--- a/master/master.c	Tue Nov 09 11:12:35 2010 +0100
+++ b/master/master.c	Tue Nov 16 15:32:27 2010 +0100
@@ -1814,7 +1814,8 @@
 
     slave->ports[0].next_slave = port0_slave;
 
-    for (i = 1; i < EC_MAX_PORTS; i++) {
+    i = 3;
+    while (i != 0) {
         if (!slave->ports[i].link.loop_closed) {
             *slave_position = *slave_position + 1;
             if (*slave_position < master->slave_count) {
@@ -1827,6 +1828,14 @@
                 return -1;
             }
         }
+        switch (i)
+        {
+        case 0: i = 3; break;
+        case 1: i = 2; break;
+        case 3: i = 1; break;
+        case 2:
+        default:i = 0; break;
+        }
     }
 
     return 0;