diff --git a/src/nvidia/src/kernel/rmapi/nv_gpu_ops.c b/src/nvidia/src/kernel/rmapi/nv_gpu_ops.c index 2e2fbd542..701df64c5 100644 --- a/src/nvidia/src/kernel/rmapi/nv_gpu_ops.c +++ b/src/nvidia/src/kernel/rmapi/nv_gpu_ops.c @@ -8984,6 +8984,16 @@ NV_STATUS nvGpuOpsSetPageDirectory(struct gpuAddressSpace *vaSpace, NV0080_CTRL_CMD_DMA_SET_PAGE_DIRECTORY, ¶ms, sizeof(params)); + if (status != NV_OK) + { + if (vaspaceIsExternallyOwned(pVAS)) + { + nvGpuOpsEnableVaSpaceChannels(vaSpace); + } + _nvGpuOpsLocksRelease(&acquiredLocks); + threadStateFree(&threadState, THREAD_STATE_FLAGS_NONE); + return status; + } // // Store page table root DMA Address (GPU Physical Address) for RM client