]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/amdkfd: Don't drain ih1 for APU
authorYifan Zhang <yifan1.zhang@amd.com>
Tue, 27 Aug 2024 07:14:31 +0000 (15:14 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 29 Aug 2024 17:40:00 +0000 (13:40 -0400)
ih1 is not initialized for APUs. Don't drain it or NULL pointer
error will be triggered.

Fixes: 6ef29715ac06 ("drm/amdkfd: Change kfd/svm page fault drain handling")
Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_svm.c

index ce2a5d9f90d37ba6c85fc71b9c281486d8a2c9e9..40c94c4cdd96d2c93b14914c1d8c7bd7510ea69e 100644 (file)
@@ -2464,11 +2464,14 @@ svm_range_unmap_from_cpu(struct mm_struct *mm, struct svm_range *prange,
                adev = pdd->dev->adev;
 
                /* Check and drain ih1 ring if cam not available */
-               ih = &adev->irq.ih1;
-               checkpoint_wptr = amdgpu_ih_get_wptr(adev, ih);
-               if (ih->rptr != checkpoint_wptr) {
-                       svms->checkpoint_ts[i] = amdgpu_ih_decode_iv_ts(adev, ih, checkpoint_wptr, -1);
-                       continue;
+               if (adev->irq.ih1.ring_size) {
+                       ih = &adev->irq.ih1;
+                       checkpoint_wptr = amdgpu_ih_get_wptr(adev, ih);
+                       if (ih->rptr != checkpoint_wptr) {
+                               svms->checkpoint_ts[i] =
+                                       amdgpu_ih_decode_iv_ts(adev, ih, checkpoint_wptr, -1);
+                               continue;
+                       }
                }
 
                /* check if dev->irq.ih_soft is not empty */