Ok, this one here is a bit more complicated, but for an RFC I've
figured I can be a bit sloppy. So just convert ever mutex_lock call,
including the interruptible one. Since other places (e.g. in the
execbuf ioctl) take the mode_config.mutex without bothering with
interruptible handling, I've figured I should be able to get away with
this in a few more places ...

Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c |   18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
index 2f7c08e..13e4371 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
@@ -161,11 +161,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
                goto out_no_copy;
        }

-       ret = mutex_lock_interruptible(&dev->mode_config.mutex);
-       if (unlikely(ret != 0)) {
-               ret = -ERESTARTSYS;
-               goto out_no_mode_mutex;
-       }
+       drm_modeset_lock_all(dev);

        obj = drm_mode_object_find(dev, arg->fb_id, DRM_MODE_OBJECT_FB);
        if (!obj) {
@@ -198,8 +194,7 @@ out_no_surface:
        ttm_read_unlock(&vmaster->lock);
 out_no_ttm_lock:
 out_no_fb:
-       mutex_unlock(&dev->mode_config.mutex);
-out_no_mode_mutex:
+       drm_modeset_unlock_all(dev);
 out_no_copy:
        kfree(clips);
 out_clips:
@@ -249,11 +244,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, 
void *data,
                goto out_no_copy;
        }

-       ret = mutex_lock_interruptible(&dev->mode_config.mutex);
-       if (unlikely(ret != 0)) {
-               ret = -ERESTARTSYS;
-               goto out_no_mode_mutex;
-       }
+       drm_modeset_lock_all(dev);

        obj = drm_mode_object_find(dev, arg->fb_id, DRM_MODE_OBJECT_FB);
        if (!obj) {
@@ -280,8 +271,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void 
*data,
        ttm_read_unlock(&vmaster->lock);
 out_no_ttm_lock:
 out_no_fb:
-       mutex_unlock(&dev->mode_config.mutex);
-out_no_mode_mutex:
+       drm_modeset_unlock_all(dev);
 out_no_copy:
        kfree(clips);
 out_clips:
-- 
1.7.10.4

Reply via email to