ih1 is not initialized for APUs. Don't drain it or NULL pointer
error will be triggered.

Fixes: 490fc21fe97c (drm/amdkfd: Change kfd/svm page fault drain handling)
Signed-off-by: Yifan Zhang <yifan1.zh...@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
index b44dec90969f..1d08978955c7 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
@@ -2458,11 +2458,13 @@ 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->flags & AMD_IS_APU)) {
+                       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 */
-- 
2.37.3

Reply via email to