--- 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) {