struct data { ... struct kref ref; ... }; kref_init(&data->kref); kref_get(&data->kref); kref_put(&data->kref, data_release); void data_release(struct kref *ref) { struct data *data = container_of(ref, struct data, ref); kfree(data); } TODO: kobject e kset