On Wed, Apr 06, 2022 at 09:51:23AM +0200, Christian König wrote: > Always wait for kernel fences before kmap and not only for UVD kmaps. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > --- > drivers/gpu/drm/radeon/radeon_object.c | 7 ++++++- > drivers/gpu/drm/radeon/radeon_uvd.c | 12 ++---------- > 2 files changed, 8 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c > index cb5c4aa45cef..6c4a6802ca96 100644 > --- a/drivers/gpu/drm/radeon/radeon_object.c > +++ b/drivers/gpu/drm/radeon/radeon_object.c > @@ -219,7 +219,12 @@ int radeon_bo_create(struct radeon_device *rdev, > int radeon_bo_kmap(struct radeon_bo *bo, void **ptr) > { > bool is_iomem; > - int r; > + long r; > + > + r = dma_resv_wait_timeout(bo->tbo.base.resv, DMA_RESV_USAGE_KERNEL, > + false, MAX_SCHEDULE_TIMEOUT); Maybe another reason why we should push this wait into ttm kmap helpers? Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > + if (r < 0) > + return r; > > if (bo->kptr) { > if (ptr) { > diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c > index a50750740ab0..a2cda184b2b2 100644 > --- a/drivers/gpu/drm/radeon/radeon_uvd.c > +++ b/drivers/gpu/drm/radeon/radeon_uvd.c > @@ -470,24 +470,16 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p, struct radeon_bo *bo, > int32_t *msg, msg_type, handle; > unsigned img_size = 0; > void *ptr; > - long r; > - int i; > + int i, r; > > if (offset & 0x3F) { > DRM_ERROR("UVD messages must be 64 byte aligned!\n"); > return -EINVAL; > } > > - r = dma_resv_wait_timeout(bo->tbo.base.resv, DMA_RESV_USAGE_WRITE, > - false, MAX_SCHEDULE_TIMEOUT); > - if (r <= 0) { > - DRM_ERROR("Failed waiting for UVD message (%ld)!\n", r); > - return r ? r : -ETIME; > - } > - > r = radeon_bo_kmap(bo, &ptr); > if (r) { > - DRM_ERROR("Failed mapping the UVD message (%ld)!\n", r); > + DRM_ERROR("Failed mapping the UVD message (%d)!\n", r); > return r; > } > > -- > 2.25.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch