An invalid return value 'r' of the pm_runtime_get_sync is r < 0, so fix the return value check and add proper failure log and exit cleanly. Successful refcount in userqueue creation to make sure device remains in active state. Signed-off-by: Sunil Khatri <sunil.khatri@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/mes_userqueue.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c index 3a71d01b54c9..7df50ff80f9b 100644 --- a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c +++ b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c @@ -289,8 +289,11 @@ static int mes_userq_mqd_create(struct amdgpu_userq_mgr *uq_mgr, queue->userq_prop = userq_props; r = pm_runtime_get_sync(adev_to_drm(adev)->dev); - if (r) + if (r < 0) { + drm_err(&adev->ddev, "Failed to increment ref count of device pm_runtime\n"); + pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); goto free_mqd; + } r = mqd_hw_default->init_mqd(adev, (void *)queue->mqd.cpu_ptr, userq_props); if (r) { -- 2.34.1