From 2ddf504a95de484b01d91252aa9cad07e1632019 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Fri, 13 Oct 2006 09:05:45 +0000
Subject: [PATCH] Removed additional loop in coe_down FSM; renamed mbox_type to
 mbox_prot.

---
 master/ethernet.c |  6 +++---
 master/fsm.c      | 14 +++++---------
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/master/ethernet.c b/master/ethernet.c
index 316dd130..0aa75d1f 100644
--- a/master/ethernet.c
+++ b/master/ethernet.c
@@ -362,7 +362,7 @@ void ec_eoe_state_rx_check(ec_eoe_t *eoe /**< EoE handler */)
 void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */)
 {
     size_t rec_size, data_size;
-    uint8_t *data, frame_type, last_fragment, time_appended, mbox_type;
+    uint8_t *data, frame_type, last_fragment, time_appended, mbox_prot;
     uint8_t frame_number, fragment_offset, fragment_number;
     off_t offset;
 #if EOE_DEBUG_LEVEL > 1
@@ -376,13 +376,13 @@ void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */)
     }
 
     if (!(data = ec_slave_mbox_fetch(eoe->slave, &eoe->datagram,
-                                     &mbox_type, &rec_size))) {
+                                     &mbox_prot, &rec_size))) {
         eoe->stats.rx_errors++;
         eoe->state = ec_eoe_state_tx_start;
         return;
     }
 
-    if (mbox_type != 0x02) {
+    if (mbox_prot != 0x02) { // EoE
         eoe->stats.rx_errors++;
         eoe->state = ec_eoe_state_tx_start;
         return;
diff --git a/master/fsm.c b/master/fsm.c
index 6a35929a..77927507 100644
--- a/master/fsm.c
+++ b/master/fsm.c
@@ -2142,7 +2142,7 @@ void ec_fsm_coe_down_response(ec_fsm_t *fsm /**< finite state machine */)
 {
     ec_datagram_t *datagram = &fsm->datagram;
     ec_slave_t *slave = fsm->slave;
-    uint8_t *data, mbox_type;
+    uint8_t *data, mbox_prot;
     size_t rec_size;
     ec_sdo_data_t *sdodata = fsm->sdodata;
 
@@ -2154,18 +2154,14 @@ void ec_fsm_coe_down_response(ec_fsm_t *fsm /**< finite state machine */)
     }
 
     if (!(data = ec_slave_mbox_fetch(slave, datagram,
-				     &mbox_type, &rec_size))) {
+				     &mbox_prot, &rec_size))) {
         fsm->coe_state = ec_fsm_error;
         return;
     }
 
-    if (mbox_type != 0x03) {
-        EC_WARN("Received mailbox protocol 0x%02X as a response."
-	      " Trying again.\n", mbox_type);
-        fsm->coe_start = get_cycles();
-        ec_slave_mbox_prepare_check(slave, datagram); // can not fail.
-	ec_master_queue_datagram(fsm->master, datagram);
-	fsm->coe_state = ec_fsm_coe_down_check;
+    if (mbox_prot != 0x03) { // CoE
+        EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot);
+        fsm->coe_state = ec_fsm_error;
 	return;
     }
 
-- 
GitLab