drm/amd/amdgpu: skip locking delayed work if not initialized.
authorYuBiao Wang <YuBiao.Wang@amd.com>
Thu, 5 Aug 2021 02:32:40 +0000 (10:32 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 9 Aug 2021 19:42:30 +0000 (15:42 -0400)
When init failed in early init stage, amdgpu_object has
not been initialized, so hasn't the ttm delayed queue functions.

Signed-off-by: YuBiao Wang <YuBiao.Wang@amd.com>
Reviewed-by: Emily.Deng <Emily.Deng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index d7cc45e68dbdaa67e9c781fed78a023c80d0f37c..65ccd11448633189191d9592f97cc327e6299663 100644 (file)
@@ -3826,7 +3826,8 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
 {
        dev_info(adev->dev, "amdgpu: finishing device.\n");
        flush_delayed_work(&adev->delayed_init_work);
-       ttm_bo_lock_delayed_workqueue(&adev->mman.bdev);
+       if (adev->mman.initialized)
+               ttm_bo_lock_delayed_workqueue(&adev->mman.bdev);
        adev->shutdown = true;
 
        /* make sure IB test finished before entering exclusive mode