master/slave.c
changeset 2597 0e145bb05859
parent 2589 2b9c78543663
child 2600 1a969896d52e
--- a/master/slave.c	Thu Nov 06 08:55:35 2014 +0100
+++ b/master/slave.c	Wed Nov 12 14:42:17 2014 +0100
@@ -155,6 +155,7 @@
     INIT_LIST_HEAD(&slave->reg_requests);
     INIT_LIST_HEAD(&slave->foe_requests);
     INIT_LIST_HEAD(&slave->soe_requests);
+    INIT_LIST_HEAD(&slave->eoe_requests);
 
     // create state machine object
     ec_fsm_slave_init(&slave->fsm, slave);
@@ -211,6 +212,15 @@
         request->state = EC_INT_REQUEST_FAILURE;
     }
 
+    while (!list_empty(&slave->eoe_requests)) {
+        ec_eoe_request_t *request =
+            list_entry(slave->eoe_requests.next, ec_eoe_request_t, list);
+        list_del_init(&request->list); // dequeue
+        EC_SLAVE_WARN(slave, "Discarding EoE request,"
+                " slave about to be deleted.\n");
+        request->state = EC_INT_REQUEST_FAILURE;
+    }
+
     wake_up_all(&slave->master->request_queue);
 
     if (slave->config) {