On 8/19/26 08:43, Bob Zhou wrote:
> uvd_v7_0_sw_init() does not initialize the UVD decode ring for an
> SR-IOV VF. However, amdgpu_uvd_resume() unconditionally force-completes
> the decode ring when restoring its fence sequence.
> 
> Skip fence completion when the fence driver is not initialized.
> 
> Fixes: 043f2271e2d0 ("drm/amdgpu: mark force completed fences with 
> -ECANCELED")
> Signed-off-by: Bob Zhou <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> index 228a405a94c4f..ecd7caa95d4b2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> @@ -517,7 +517,8 @@ int amdgpu_uvd_resume(struct amdgpu_device *adev)
>                       }
>                       memset_io(ptr, 0, size);
>                       /* to restore uvd fence seq */
> -                     
> amdgpu_fence_driver_force_completion(&adev->uvd.inst[i].ring, NULL);
> +                     if (adev->uvd.inst[i].ring.fence_drv.initialized)
> +                             
> amdgpu_fence_driver_force_completion(&adev->uvd.inst[i].ring, NULL);

That check should potentially be inside amdgpu_fence_driver_force_completion(), 
apart from that it looks good to me.

Regards,
Christian.

>               }
>       }
>       return 0;

Reply via email to