Skip to content

Commit 21f46f5

Browse files
srishanmalexdeucher
authored andcommitted
drm/amdgpu/ttm: Fix crash when handling MMIO_REMAP in PDE flags
The MMIO_REMAP BO is a special 4K IO page that does not have a ttm_tt behind it. However, amdgpu_ttm_tt_pde_flags() was treating it like normal TT/doorbell/preempt memory and unconditionally accessed ttm->caching. For the MMIO_REMAP BO, ttm is NULL, so this leads to a NULL pointer dereference when computing PDE flags. Fix this by checking that ttm is non-NULL before reading ttm->caching. This prevents the crash for MMIO_REMAP and also makes the code more defensive if other BOs ever come through without a ttm_tt. Fixes: fb5a52d ("drm/amdgpu: Implement TTM handling for MMIO_REMAP placement") Suggested-by: Jesse Zhang <[email protected]> Suggested-by: Christian König <[email protected]> Cc: Alex Deucher <[email protected]> Signed-off-by: Srinivasan Shanmugam <[email protected]> Reviewed-by: Jesse Zhang <[email protected]> Tested-by: Jesse Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 0db94da5a0a1cacda080b9ec8425fcbe4babc141)
1 parent a445923 commit 21f46f5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1372,7 +1372,7 @@ uint64_t amdgpu_ttm_tt_pde_flags(struct ttm_tt *ttm, struct ttm_resource *mem)
13721372
mem->mem_type == AMDGPU_PL_MMIO_REMAP)) {
13731373
flags |= AMDGPU_PTE_SYSTEM;
13741374

1375-
if (ttm->caching == ttm_cached)
1375+
if (ttm && ttm->caching == ttm_cached)
13761376
flags |= AMDGPU_PTE_SNOOPED;
13771377
}
13781378

0 commit comments

Comments
 (0)