Commit 907f5320 authored by Emil Velikov's avatar Emil Velikov
Browse files

drm: vmwgfx: remove drm_driver::master_set() return type



The function always returns zero (success). Ideally we'll remove it all
together - although that's requires a little more work.

For now, we can drop the return type and simplify the drm core code
surrounding it.

v2: remove redundant assignment (Sam)

Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: VMware Graphics <linux-graphics-maintainer@vmware.com>
Cc: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: default avatarEmil Velikov <emil.l.velikov@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
Reviewed-by: default avatarRoland Scheidegger <sroland@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200530124640.4176323-1-emil.l.velikov@gmail.com
parent d2fb716a
Loading
Loading
Loading
Loading
+7 −25
Original line number Diff line number Diff line
@@ -122,27 +122,19 @@ struct drm_master *drm_master_create(struct drm_device *dev)
	return master;
}

static int drm_set_master(struct drm_device *dev, struct drm_file *fpriv,
static void drm_set_master(struct drm_device *dev, struct drm_file *fpriv,
			   bool new_master)
{
	int ret = 0;

	dev->master = drm_master_get(fpriv->master);
	if (dev->driver->master_set) {
		ret = dev->driver->master_set(dev, fpriv, new_master);
		if (unlikely(ret != 0)) {
			drm_master_put(&dev->master);
		}
	}
	if (dev->driver->master_set)
		dev->driver->master_set(dev, fpriv, new_master);

	fpriv->was_master = (ret == 0);
	return ret;
	fpriv->was_master = true;
}

static int drm_new_set_master(struct drm_device *dev, struct drm_file *fpriv)
{
	struct drm_master *old_master;
	int ret;

	lockdep_assert_held_once(&dev->master_mutex);

@@ -157,22 +149,12 @@ static int drm_new_set_master(struct drm_device *dev, struct drm_file *fpriv)
	fpriv->is_master = 1;
	fpriv->authenticated = 1;

	ret = drm_set_master(dev, fpriv, true);
	if (ret)
		goto out_err;
	drm_set_master(dev, fpriv, true);

	if (old_master)
		drm_master_put(&old_master);

	return 0;

out_err:
	/* drop references and restore old master on failure */
	drm_master_put(&fpriv->master);
	fpriv->master = old_master;
	fpriv->is_master = 0;

	return ret;
}

/*
@@ -265,7 +247,7 @@ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
		goto out_unlock;
	}

	ret = drm_set_master(dev, file_priv, false);
	drm_set_master(dev, file_priv, false);
out_unlock:
	mutex_unlock(&dev->master_mutex);
	return ret;
+3 −5
Original line number Diff line number Diff line
@@ -1129,7 +1129,7 @@ static long vmw_compat_ioctl(struct file *filp, unsigned int cmd,
}
#endif

static int vmw_master_set(struct drm_device *dev,
static void vmw_master_set(struct drm_device *dev,
			   struct drm_file *file_priv,
			   bool from_open)
{
@@ -1139,8 +1139,6 @@ static int vmw_master_set(struct drm_device *dev,
	 */
	if (!from_open)
		drm_sysfs_hotplug_event(dev);

	return 0;
}

static void vmw_master_drop(struct drm_device *dev,
+2 −2
Original line number Diff line number Diff line
@@ -311,7 +311,7 @@ struct drm_driver {
	 *
	 * Called whenever the minor master is set. Only used by vmwgfx.
	 */
	int (*master_set)(struct drm_device *dev, struct drm_file *file_priv,
	void (*master_set)(struct drm_device *dev, struct drm_file *file_priv,
			   bool from_open);
	/**
	 * @master_drop: