mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
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 <dnibade@nvidia.com> Reviewed-on: http://git-master/r/770322 GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam <snikam@nvidia.com>
This commit is contained in:
committed by
Sachin Nikam
parent
1b145f447b
commit
ae2f9da28e
@@ -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--;
|
||||
|
||||
Reference in New Issue
Block a user