static void amdgpu_ctx_do_release(struct kref *ref) { struct amdgpu_ctx *ctx; ctx = container_of(ref, struct amdgpu_ctx, refcount); amdgpu_ctx_fini(ctx); kfree(ctx); }
static void amdgpu_ctx_do_release(struct kref *ref) { struct amdgpu_ctx *ctx; unsigned num_entities; u32 i; ctx = container_of(ref, struct amdgpu_ctx, refcount); num_entities = 0; for (i = 0; i < AMDGPU_HW_IP_NUM; i++) num_entities += amdgpu_ctx_num_entities[i]; for (i = 0; i < num_entities; i++) drm_sched_entity_destroy(&ctx->entities[0][i].entity); amdgpu_ctx_fini(ref); }
static void amdgpu_ctx_do_release(struct kref *ref) { struct amdgpu_ctx *ctx; u32 i; ctx = container_of(ref, struct amdgpu_ctx, refcount); for (i = 0; i < ctx->adev->num_rings; i++) { if (ctx->adev->rings[i] == &ctx->adev->gfx.kiq.ring) continue; drm_sched_entity_fini(&ctx->adev->rings[i]->sched, &ctx->rings[i].entity); } amdgpu_ctx_fini(ref); }