From f22236c0c15d7c1daf02c9c663f489cdb61cfa99 Mon Sep 17 00:00:00 2001 From: Sachit Kadle Date: Wed, 24 Aug 2016 11:16:34 -0700 Subject: gpu: nvgpu: use vzalloc for golden_ctx_image As the size of the golden_ctx_image is large, the allocation may intermittently fail when using kzalloc. Since we don't need physically continguous memory, use vzalloc instead. Bug 200231436 Change-Id: Ic2fb31dea94c8721832dc257334608e1fc283943 Signed-off-by: Sachit Kadle Reviewed-on: http://git-master/r/1207172 (cherry picked from commit 994a7b162ec74518ae0f50dfb5ac197e44019992) Reviewed-on: http://git-master/r/1229472 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 2 +- drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index 8ac983d9..875a99ce 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c @@ -712,7 +712,7 @@ static ssize_t tpc_fs_mask_store(struct device *dev, g->ops.gr.set_gpc_tpc_mask(g, 0); - kfree(g->gr.ctx_vars.local_golden_image); + vfree(g->gr.ctx_vars.local_golden_image); g->gr.ctx_vars.local_golden_image = NULL; g->gr.ctx_vars.golden_image_initialized = false; g->gr.ctx_vars.golden_image_size = 0; diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index eac9456a..883cacdc 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -1680,7 +1680,7 @@ restore_fe_go_idle: if (gr->ctx_vars.local_golden_image == NULL) { gr->ctx_vars.local_golden_image = - kzalloc(gr->ctx_vars.golden_image_size, GFP_KERNEL); + vzalloc(gr->ctx_vars.golden_image_size); if (gr->ctx_vars.local_golden_image == NULL) { err = -ENOMEM; @@ -3275,7 +3275,7 @@ static void gk20a_remove_gr_support(struct gr_gk20a *gr) kfree(gr->ctx_vars.ctxsw_regs.pm_ltc.l); kfree(gr->ctx_vars.ctxsw_regs.pm_fbpa.l); - kfree(gr->ctx_vars.local_golden_image); + vfree(gr->ctx_vars.local_golden_image); gr->ctx_vars.local_golden_image = NULL; if (gr->ctx_vars.hwpm_ctxsw_buffer_offset_map) -- cgit v1.2.2