summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSachit Kadle <skadle@nvidia.com>2016-08-24 14:16:34 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-09-29 23:26:41 -0400
commitf22236c0c15d7c1daf02c9c663f489cdb61cfa99 (patch)
tree51ebd0db68cca5951341491a795e24001a2ced80 /drivers
parent965c2cbbecbb569a5d3062558047eedcdf9bb7e5 (diff)
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 <skadle@nvidia.com> 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 <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c4
2 files changed, 3 insertions, 3 deletions
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,
712 712
713 g->ops.gr.set_gpc_tpc_mask(g, 0); 713 g->ops.gr.set_gpc_tpc_mask(g, 0);
714 714
715 kfree(g->gr.ctx_vars.local_golden_image); 715 vfree(g->gr.ctx_vars.local_golden_image);
716 g->gr.ctx_vars.local_golden_image = NULL; 716 g->gr.ctx_vars.local_golden_image = NULL;
717 g->gr.ctx_vars.golden_image_initialized = false; 717 g->gr.ctx_vars.golden_image_initialized = false;
718 g->gr.ctx_vars.golden_image_size = 0; 718 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:
1680 if (gr->ctx_vars.local_golden_image == NULL) { 1680 if (gr->ctx_vars.local_golden_image == NULL) {
1681 1681
1682 gr->ctx_vars.local_golden_image = 1682 gr->ctx_vars.local_golden_image =
1683 kzalloc(gr->ctx_vars.golden_image_size, GFP_KERNEL); 1683 vzalloc(gr->ctx_vars.golden_image_size);
1684 1684
1685 if (gr->ctx_vars.local_golden_image == NULL) { 1685 if (gr->ctx_vars.local_golden_image == NULL) {
1686 err = -ENOMEM; 1686 err = -ENOMEM;
@@ -3275,7 +3275,7 @@ static void gk20a_remove_gr_support(struct gr_gk20a *gr)
3275 kfree(gr->ctx_vars.ctxsw_regs.pm_ltc.l); 3275 kfree(gr->ctx_vars.ctxsw_regs.pm_ltc.l);
3276 kfree(gr->ctx_vars.ctxsw_regs.pm_fbpa.l); 3276 kfree(gr->ctx_vars.ctxsw_regs.pm_fbpa.l);
3277 3277
3278 kfree(gr->ctx_vars.local_golden_image); 3278 vfree(gr->ctx_vars.local_golden_image);
3279 gr->ctx_vars.local_golden_image = NULL; 3279 gr->ctx_vars.local_golden_image = NULL;
3280 3280
3281 if (gr->ctx_vars.hwpm_ctxsw_buffer_offset_map) 3281 if (gr->ctx_vars.hwpm_ctxsw_buffer_offset_map)