Am 14.12.2017 um 12:38 schrieb Jim Qu: > Change-Id: I06e5460ece91e812cda28fb02a6b78676d921e18 > Signed-off-by: Jim Qu <Jim.Qu at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c > index 916e516..343b682 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c > @@ -294,6 +294,8 @@ int amdgpu_uvd_suspend(struct amdgpu_device *adev) > void *ptr; > int i; > > + cancel_delayed_work_sync(&adev->uvd.idle_work); > + > if (adev->uvd.vcpu_bo == NULL) > return 0; Good catch, but you moved it a bit to hight I think. When adev->uvd.vcpu_bo is NULL the delayed work item might never have been initialized. Not sure if that is a problem, but I would just move the cancel_delayed_work after the "if" just to be on the safe side. Christian. > > @@ -304,8 +306,6 @@ int amdgpu_uvd_suspend(struct amdgpu_device *adev) > if (i == AMDGPU_MAX_UVD_HANDLES) > return 0; > > - cancel_delayed_work_sync(&adev->uvd.idle_work); > - > size = amdgpu_bo_size(adev->uvd.vcpu_bo); > ptr = adev->uvd.cpu_addr; >