PRT BOs may not have any backing store, so bo->tbo.resource will be
NULL. Check for that before dereferencing.

Fixes: 0cce5f285d9ae8 ("drm/amdkfd: Check correct memory types for is_system 
variable")
Signed-off-by: Natalie Vock <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
index ea7c32d8380ba..bf8d01da88154 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
@@ -528,8 +528,9 @@ static void gmc_v12_0_get_vm_pte(struct amdgpu_device *adev,

        bo_adev = amdgpu_ttm_adev(bo->tbo.bdev);
        coherent = bo->flags & AMDGPU_GEM_CREATE_COHERENT;
-       is_system = (bo->tbo.resource->mem_type == TTM_PL_TT) ||
-               (bo->tbo.resource->mem_type == AMDGPU_PL_PREEMPT);
+       is_system = bo->tbo.resource &&
+               (bo->tbo.resource->mem_type == TTM_PL_TT ||
+                bo->tbo.resource->mem_type == AMDGPU_PL_PREEMPT);

        if (bo && bo->flags & AMDGPU_GEM_CREATE_GFX12_DCC)
                *flags |= AMDGPU_PTE_DCC;
--
2.48.1

Reply via email to