diff -r 0eda82d1a8c1 -r bc4c852e1b93 master/slave.c --- a/master/slave.c Tue Oct 17 14:37:46 2006 +0000 +++ b/master/slave.c Tue Oct 17 14:50:04 2006 +0000 @@ -182,7 +182,6 @@ ec_sii_pdo_t *pdo, *next_pdo; ec_sii_pdo_entry_t *entry, *next_ent; ec_sdo_t *sdo, *next_sdo; - ec_sdo_entry_t *en, *next_en; ec_sdo_data_t *sdodata, *next_sdodata; slave = container_of(kobj, ec_slave_t, kobj); @@ -222,14 +221,8 @@ // free all SDOs list_for_each_entry_safe(sdo, next_sdo, &slave->sdo_dictionary, list) { list_del(&sdo->list); - if (sdo->name) kfree(sdo->name); - - // free all SDO entries - list_for_each_entry_safe(en, next_en, &sdo->entries, list) { - list_del(&en->list); - kfree(en); - } - kfree(sdo); + kobject_del(&sdo->kobj); + kobject_put(&sdo->kobj); } // free all SDO configurations