diff options
author | Seema Khowala <seemaj@nvidia.com> | 2018-02-27 16:53:55 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-03-01 15:39:08 -0500 |
commit | abe829338c128d18fd2c7af3387a537f55abd24d (patch) | |
tree | 4a21db3eac639a7dff265753a95938f46bfb63bc | |
parent | ba8fa334f40223ad491ab61a6c072a276017787f (diff) |
gpu: nvgpu: do not alloc ctx buffers if already allocated
Bug 200393029
Change-Id: Ic2946958e34bcb9247179fcf2e8735c822155cce
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1665338
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Rajkumar Kasirajan <rkasirajan@nvidia.com>
Reviewed-by: Shreshtha Sahu <ssahu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c index 952a7ed1..3e1c6996 100644 --- a/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c | |||
@@ -122,6 +122,9 @@ static int gk20a_tegra_secure_alloc(struct gk20a *g, | |||
122 | int err = 0; | 122 | int err = 0; |
123 | size_t aligned_size = PAGE_ALIGN(size); | 123 | size_t aligned_size = PAGE_ALIGN(size); |
124 | 124 | ||
125 | if (nvgpu_mem_is_valid(&desc->mem)) | ||
126 | return 0; | ||
127 | |||
125 | /* We ran out of preallocated memory */ | 128 | /* We ran out of preallocated memory */ |
126 | if (secure_buffer->used + aligned_size > secure_buffer->size) { | 129 | if (secure_buffer->used + aligned_size > secure_buffer->size) { |
127 | nvgpu_err(platform->g, "failed to alloc %zu bytes of VPR, %zu/%zu used", | 130 | nvgpu_err(platform->g, "failed to alloc %zu bytes of VPR, %zu/%zu used", |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 8db6b42f..7160ab6f 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -2482,6 +2482,11 @@ static int gk20a_gr_alloc_ctx_buffer(struct gk20a *g, | |||
2482 | { | 2482 | { |
2483 | int err = 0; | 2483 | int err = 0; |
2484 | 2484 | ||
2485 | nvgpu_log_fn(g, " "); | ||
2486 | |||
2487 | if (nvgpu_mem_is_valid(&desc->mem)) | ||
2488 | return 0; | ||
2489 | |||
2485 | err = nvgpu_dma_alloc_flags_sys(g, NVGPU_DMA_NO_KERNEL_MAPPING, | 2490 | err = nvgpu_dma_alloc_flags_sys(g, NVGPU_DMA_NO_KERNEL_MAPPING, |
2486 | size, &desc->mem); | 2491 | size, &desc->mem); |
2487 | if (err) | 2492 | if (err) |