diff --git a/drivers/gpu/nvgpu/common/gr/ctx.c b/drivers/gpu/nvgpu/common/gr/ctx.c index 2e875b06c..c71c23c54 100644 --- a/drivers/gpu/nvgpu/common/gr/ctx.c +++ b/drivers/gpu/nvgpu/common/gr/ctx.c @@ -182,8 +182,10 @@ static void nvgpu_gr_ctx_unmap_global_ctx_buffers(struct gk20a *g, nvgpu_log_fn(g, " "); for (i = 0U; i < NVGPU_GR_CTX_VA_COUNT; i++) { - nvgpu_gr_global_ctx_buffer_unmap(global_ctx_buffer, - g_bfr_index[i], vm, g_bfr_va[i]); + if (g_bfr_va[i] != 0ULL) { + nvgpu_gr_global_ctx_buffer_unmap(global_ctx_buffer, + g_bfr_index[i], vm, g_bfr_va[i]); + } } (void) memset(g_bfr_va, 0, sizeof(gr_ctx->global_ctx_buffer_va)); diff --git a/drivers/gpu/nvgpu/common/mm/gmmu/page_table.c b/drivers/gpu/nvgpu/common/mm/gmmu/page_table.c index 58288590b..583c27694 100644 --- a/drivers/gpu/nvgpu/common/mm/gmmu/page_table.c +++ b/drivers/gpu/nvgpu/common/mm/gmmu/page_table.c @@ -726,6 +726,8 @@ static int nvgpu_gmmu_do_update_page_table(struct vm_gk20a *vm, * This is considered an unmap. Just pass in 0 as the physical * address for the entire GPU range. */ + nvgpu_assert(virt_addr != 0ULL); + err = nvgpu_set_pd_level(vm, &vm->pdb, 0U, 0,