Before making a function call to wait_for_idle,
validate the function pointer like we do in sw_init.

Signed-off-by: Sunil Khatri <sunil.kha...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 4b302e52b090..6c0ff1c2ae4c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2240,9 +2240,12 @@ int amdgpu_device_ip_wait_for_idle(struct amdgpu_device 
*adev,
                if (!adev->ip_blocks[i].status.valid)
                        continue;
                if (adev->ip_blocks[i].version->type == block_type) {
-                       r = 
adev->ip_blocks[i].version->funcs->wait_for_idle(&adev->ip_blocks[i]);
-                       if (r)
-                               return r;
+                       if (adev->ip_blocks[i].version->funcs->wait_for_idle) {
+                               r = 
adev->ip_blocks[i].version->funcs->wait_for_idle(
+                                                               
&adev->ip_blocks[i]);
+                               if (r)
+                                       return r;
+                       }
                        break;
                }
        }
-- 
2.34.1

Reply via email to