From eb5d644536b5237c46ebdb4ab82a7a6d931b1e7b Mon Sep 17 00:00:00 2001 From: Martin Radev Date: Mon, 25 Jul 2022 13:00:55 +0300 Subject: [PATCH] gpu: nvgpu: Consume L3 map flag even if L3 not supported This patch fixes a bug where GPU mappings with the L3 hint would fail. The failure happens because the L3 map flag does not get consumed if L3 allocations are disabled. The fix is to consume the flag. Bug 3717951 Bug 3486025 Change-Id: Ib10ee58cc060318c810f86013de7311f73c25729 Signed-off-by: Martin Radev Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2750419 (cherry picked from commit cb768ff1334e5d0895b95cc69e8a83895c021b1c) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2750903 Reviewed-by: Vijayakumar Subbu Reviewed-by: Winnie Hsu GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/os/linux/vm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nvgpu/os/linux/vm.c b/drivers/gpu/nvgpu/os/linux/vm.c index a4257e43e..025b331ef 100644 --- a/drivers/gpu/nvgpu/os/linux/vm.c +++ b/drivers/gpu/nvgpu/os/linux/vm.c @@ -66,10 +66,11 @@ static int nvgpu_vm_translate_linux_flags(struct gk20a *g, u32 flags, u32 *out_c core_flags |= NVGPU_VM_MAP_UNMAPPED_PTE; consumed_flags |= NVGPU_AS_MAP_BUFFER_FLAGS_UNMAPPED_PTE; } - if ((flags & NVGPU_AS_MAP_BUFFER_FLAGS_L3_ALLOC) != 0U && - !nvgpu_is_enabled(g, NVGPU_DISABLE_L3_SUPPORT)) { - core_flags |= NVGPU_VM_MAP_L3_ALLOC; + if ((flags & NVGPU_AS_MAP_BUFFER_FLAGS_L3_ALLOC) != 0U) { + /* Consume the flag even if the core flag cannot be set */ consumed_flags |= NVGPU_AS_MAP_BUFFER_FLAGS_L3_ALLOC; + if (!nvgpu_is_enabled(g, NVGPU_DISABLE_L3_SUPPORT)) + core_flags |= NVGPU_VM_MAP_L3_ALLOC; } if ((flags & NVGPU_AS_MAP_BUFFER_FLAGS_DIRECT_KIND_CTRL) != 0U) { core_flags |= NVGPU_VM_MAP_DIRECT_KIND_CTRL;