From ae2f9da28e6b49a486d996a9e3b1c31ce51e15d9 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Tue, 14 Jul 2015 18:18:05 +0530 Subject: gpu: nvgpu: fix channel close sequence In gk20a_cde_remove_ctx(), current sequence is as below - gk20a_channel_close() - gk20a_deinit_cde_img() - gk20a_free_obj_ctx() But gk20a_free_obj_ctx() needs reference to channel and hence below crash is seen : [ 3901.466223] Unable to handle kernel paging request at virtual address 00001624 ... [ 3901.535218] PC is at gk20a_free_obj_ctx+0x14/0xb0 [ 3901.539910] LR is at gk20a_deinit_cde_img+0xd8/0x12c Fix this by closing the channel after gk20a_deinit_cde_img() Bug 1625901 Change-Id: Ic2dc5af933b6d6ef8982c2b9f0caa28df204051f Signed-off-by: Deepak Nibade Reviewed-on: http://git-master/r/770322 GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam --- drivers/gpu/nvgpu/gk20a/cde_gk20a.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/cde_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c index d15b6e8a..dc7e8be3 100644 --- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c @@ -73,14 +73,14 @@ __must_hold(&cde_app->mutex) trace_gk20a_cde_remove_ctx(cde_ctx); - /* free the channel */ - gk20a_channel_close(ch); - - /* ..then release mapped memory */ + /* release mapped memory */ gk20a_deinit_cde_img(cde_ctx); gk20a_gmmu_unmap(vm, cde_ctx->backing_store_vaddr, g->gr.compbit_store.mem.size, 1); + /* free the channel */ + gk20a_channel_close(ch); + /* housekeeping on app */ list_del(&cde_ctx->list); cde_ctx->g->cde_app.ctx_count--; -- cgit v1.2.2