On Mon, Aug 29, 2016 at 08:08:27AM +0100, Chris Wilson wrote: > Since fence_wait_timeout_reservation_object_wait_timeout_rcu() with a > timeout of 0 becomes reservation_object_test_signaled_rcu(), we do not > need to handle such conversion in the caller. The only challenge are > those callers that wish to differentiate the error code between the > nonblocking busy check and potentially blocking wait. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Ben Skeggs <bskeggs@xxxxxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/nouveau/nouveau_gem.c | 21 +++++++++------------ > 1 file changed, 9 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c > index 72e2399bce39..b90e21ff1ed8 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_gem.c > +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c > @@ -861,6 +861,7 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data, > struct nouveau_bo *nvbo; > bool no_wait = !!(req->flags & NOUVEAU_GEM_CPU_PREP_NOWAIT); > bool write = !!(req->flags & NOUVEAU_GEM_CPU_PREP_WRITE); > + long lret; > int ret; > > gem = drm_gem_object_lookup(file_priv, req->handle); > @@ -868,19 +869,15 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data, > return -ENOENT; > nvbo = nouveau_gem_object(gem); > > - if (no_wait) > - ret = reservation_object_test_signaled_rcu(nvbo->bo.resv, write) ? 0 : -EBUSY; > - else { > - long lret; > + lret = reservation_object_wait_timeout_rcu(nvbo->bo.resv, write, true, > + no_wait ? 0 :30 * HZ); > + if (!lret) > + ret = -EBUSY; > + else if (lret > 0) > + ret = 0; > + else > + ret = lret; > > - lret = reservation_object_wait_timeout_rcu(nvbo->bo.resv, write, true, 30 * HZ); > - if (!lret) > - ret = -EBUSY; > - else if (lret > 0) > - ret = 0; > - else > - ret = lret; > - } > nouveau_bo_sync_for_cpu(nvbo); > drm_gem_object_unreference_unlocked(gem); > > -- > 2.9.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx