diff -r 55854f070c4a -r 5ef6507fc77a master/fsm_master.c --- a/master/fsm_master.c Wed Jan 05 08:36:53 2011 +0100 +++ b/master/fsm_master.c Wed Jan 05 09:50:35 2011 +0100 @@ -1228,13 +1228,26 @@ /*****************************************************************************/ -/** called by kref_put if the request's refcount becomes zero. +/** called by kref_put if the SDO request's refcount becomes zero. * */ void ec_master_sdo_request_release(struct kref *ref) { ec_master_sdo_request_t *request = container_of(ref, ec_master_sdo_request_t, refcount); - EC_SLAVE_DBG(request->slave, 1, "Releasing request %p.\n",request); + EC_SLAVE_DBG(request->slave, 1, "Releasing SDO request %p.\n",request); ec_sdo_request_clear(&request->req); kfree(request); } + +/*****************************************************************************/ + +/** called by kref_put if the FoE request's refcount becomes zero. + * + */ +void ec_master_foe_request_release(struct kref *ref) +{ + ec_master_foe_request_t *request = container_of(ref, ec_master_foe_request_t, refcount); + EC_SLAVE_DBG(request->slave, 1, "Releasing FoE request %p.\n",request); + ec_foe_request_clear(&request->req); + kfree(request); +}