diff -r 7a025a9e192d -r 57c618557912 master/fsm_master.c --- a/master/fsm_master.c Wed Jan 05 12:26:33 2011 +0100 +++ b/master/fsm_master.c Wed Jan 05 12:46:12 2011 +0100 @@ -1284,3 +1284,16 @@ ec_foe_request_clear(&request->req); kfree(request); } + +/*****************************************************************************/ + +/** called by kref_put if the SoE request's refcount becomes zero. + * + */ +void ec_master_soe_request_release(struct kref *ref) +{ + ec_master_soe_request_t *request = container_of(ref, ec_master_soe_request_t, refcount); + EC_SLAVE_DBG(request->slave, 1, "Releasing SoE request %p.\n",request); + ec_soe_request_clear(&request->req); + kfree(request); +}