diff --git a/drivers/gpu/nvgpu/common/ce/ce_app.c b/drivers/gpu/nvgpu/common/ce/ce_app.c index a0d807b71..3466ab12c 100644 --- a/drivers/gpu/nvgpu/common/ce/ce_app.c +++ b/drivers/gpu/nvgpu/common/ce/ce_app.c @@ -78,6 +78,18 @@ int nvgpu_ce_execute_ops(struct gk20a *g, goto end; } + /* This shouldn't happen */ + if (size == 0ULL) { + ret = -EINVAL; + goto end; + } + + if (request_operation != NVGPU_CE_PHYS_MODE_TRANSFER && + request_operation != NVGPU_CE_MEMSET) { + ret = -EINVAL; + goto end; + } + nvgpu_mutex_acquire(&ce_app->app_mutex); nvgpu_list_for_each_entry_safe(ce_ctx, ce_ctx_save, @@ -319,11 +331,6 @@ u32 nvgpu_ce_prepare_submit(u64 src_buf, u64 low, hi; bool mode_transfer = (request_operation == NVGPU_CE_PHYS_MODE_TRANSFER); - /* failure case handling */ - if ((size == 0ULL) || (request_operation > NVGPU_CE_MEMSET)) { - return 0; - } - /* set the channel object */ cmd_buf_cpu_va[methodSize++] = 0x20018000; cmd_buf_cpu_va[methodSize++] = dma_copy_class;