Message ID | 20160829070834.22296-5-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Aug 29, 2016 at 08:08:28AM +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@chris-wilson.co.uk> > Cc: Sinclair Yeh <syeh@vmware.com> > Cc: Thomas Hellstrom <thellstrom@vmware.com> > Reviewed-by: Sinclair Yeh <syeh@vmware.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c > index 6a328d507a28..1a85fb2d4dc6 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c > @@ -574,10 +574,8 @@ static int vmw_user_dmabuf_synccpu_grab(struct vmw_user_dma_buffer *user_bo, > bool nonblock = !!(flags & drm_vmw_synccpu_dontblock); > long lret; > > - if (nonblock) > - return reservation_object_test_signaled_rcu(bo->resv, true) ? 0 : -EBUSY; > - > - lret = reservation_object_wait_timeout_rcu(bo->resv, true, true, MAX_SCHEDULE_TIMEOUT); > + lret = reservation_object_wait_timeout_rcu(bo->resv, true, true, > + nonblock ? 0 : MAX_SCHEDULE_TIMEOUT); > if (!lret) > return -EBUSY; > else if (lret < 0) > -- > 2.9.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Hi Thomas, Sinclair, On 23 September 2016 at 18:26, Daniel Vetter <daniel@ffwll.ch> wrote: > On Mon, Aug 29, 2016 at 08:08:28AM +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@chris-wilson.co.uk> >> Cc: Sinclair Yeh <syeh@vmware.com> >> Cc: Thomas Hellstrom <thellstrom@vmware.com> >> Reviewed-by: Sinclair Yeh <syeh@vmware.com> > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Could you please let me know if this patch is already queued up at your end, or should I just take it via drm-misc with Sinclair's r-b? Thanks and Best, Sumit.
Hi, I'm preparing a fixes pull request, and I'll include this one if it hasn't been applied by others already. Sinclair On Wed, Oct 05, 2016 at 09:41:22PM +0530, Sumit Semwal wrote: > Hi Thomas, Sinclair, > > On 23 September 2016 at 18:26, Daniel Vetter <daniel@ffwll.ch> wrote: > > On Mon, Aug 29, 2016 at 08:08:28AM +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@chris-wilson.co.uk> > >> Cc: Sinclair Yeh <syeh@vmware.com> > >> Cc: Thomas Hellstrom <thellstrom@vmware.com> > >> Reviewed-by: Sinclair Yeh <syeh@vmware.com> > > > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > > Could you please let me know if this patch is already queued up at > your end, or should I just take it via drm-misc with Sinclair's r-b? > > Thanks and Best, > Sumit.
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c index 6a328d507a28..1a85fb2d4dc6 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c @@ -574,10 +574,8 @@ static int vmw_user_dmabuf_synccpu_grab(struct vmw_user_dma_buffer *user_bo, bool nonblock = !!(flags & drm_vmw_synccpu_dontblock); long lret; - if (nonblock) - return reservation_object_test_signaled_rcu(bo->resv, true) ? 0 : -EBUSY; - - lret = reservation_object_wait_timeout_rcu(bo->resv, true, true, MAX_SCHEDULE_TIMEOUT); + lret = reservation_object_wait_timeout_rcu(bo->resv, true, true, + nonblock ? 0 : MAX_SCHEDULE_TIMEOUT); if (!lret) return -EBUSY; else if (lret < 0)