Message ID | 20170727125840.19618-4-maarten.lankhorst@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jul 27, 2017 at 02:58:38PM +0200, Maarten Lankhorst wrote: > Pass DRM_MODESET_ACQUIRE_INTERRUPTIBLE to acquire_init, and handle > drm_modeset_backoff which can now fail by returning the error. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Same comment as the atomic ioctl. With the testcase added this gets my Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_plane.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c > index 5dc8c4350602..4997229d397b 100644 > --- a/drivers/gpu/drm/drm_plane.c > +++ b/drivers/gpu/drm/drm_plane.c > @@ -866,7 +866,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, > return -EINVAL; > } > > - drm_modeset_acquire_init(&ctx, 0); > + drm_modeset_acquire_init(&ctx, DRM_MODESET_ACQUIRE_INTERRUPTIBLE); > retry: > ret = drm_modeset_lock(&crtc->mutex, &ctx); > if (ret) > @@ -955,8 +955,9 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, > crtc->primary->old_fb = NULL; > > if (ret == -EDEADLK) { > - drm_modeset_backoff(&ctx); > - goto retry; > + ret = drm_modeset_backoff(&ctx); > + if (!ret) > + goto retry; > } > > drm_modeset_drop_locks(&ctx); > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c index 5dc8c4350602..4997229d397b 100644 --- a/drivers/gpu/drm/drm_plane.c +++ b/drivers/gpu/drm/drm_plane.c @@ -866,7 +866,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, return -EINVAL; } - drm_modeset_acquire_init(&ctx, 0); + drm_modeset_acquire_init(&ctx, DRM_MODESET_ACQUIRE_INTERRUPTIBLE); retry: ret = drm_modeset_lock(&crtc->mutex, &ctx); if (ret) @@ -955,8 +955,9 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, crtc->primary->old_fb = NULL; if (ret == -EDEADLK) { - drm_modeset_backoff(&ctx); - goto retry; + ret = drm_modeset_backoff(&ctx); + if (!ret) + goto retry; } drm_modeset_drop_locks(&ctx);
Pass DRM_MODESET_ACQUIRE_INTERRUPTIBLE to acquire_init, and handle drm_modeset_backoff which can now fail by returning the error. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> --- drivers/gpu/drm/drm_plane.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)