Hi Emil.

On Fri, May 29, 2020 at 10:48:06PM +0100, Emil Velikov wrote:
> 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.
> 
> Cc: David Airlie <airl...@linux.ie>
> Cc: Daniel Vetter <dan...@ffwll.ch>
> Cc: VMware Graphics <linux-graphics-maintai...@vmware.com>
> Cc: Roland Scheidegger <srol...@vmware.com>
> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com>
Nice cleanup.

> ---
> VMWare team, I'm planning to push this via drm-misc. Review, ack and
> comments are appreciated.
> ---
>  drivers/gpu/drm/drm_auth.c          | 33 +++++++----------------------
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |  8 +++----
>  include/drm/drm_drv.h               |  4 ++--
>  3 files changed, 13 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
> index 800ac39f3213..db701a9e9393 100644
> --- a/drivers/gpu/drm/drm_auth.c
> +++ b/drivers/gpu/drm/drm_auth.c
> @@ -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,
> -                       bool new_master)
> +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,8 @@ int drm_setmaster_ioctl(struct drm_device *dev, void 
> *data,
>               goto out_unlock;
>       }
>  
> -     ret = drm_set_master(dev, file_priv, false);
> +     ret = 0;
This assignment is redundant.
ret is assigned a value here:
        ret = drm_master_check_perm(dev, file_priv);
        if (ret)
                goto out_unlock;

And all other places it is assigned and then goto out_unlock
The assignment when declared is btw. also redundant but that I think is
outside the scope of this patch.

If you remove the redundant assignment to ret then the patch is:
Reviewed-by: Sam Ravnborg <s...@ravnborg.org>

> +     drm_set_master(dev, file_priv, false);
>  out_unlock:
>       mutex_unlock(&dev->master_mutex);
>       return ret;
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> index c2247a893ed4..470428387878 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> @@ -1129,9 +1129,9 @@ static long vmw_compat_ioctl(struct file *filp, 
> unsigned int cmd,
>  }
>  #endif
>  
> -static int vmw_master_set(struct drm_device *dev,
> -                       struct drm_file *file_priv,
> -                       bool from_open)
> +static void vmw_master_set(struct drm_device *dev,
> +                        struct drm_file *file_priv,
> +                        bool from_open)
>  {
>       /*
>        * Inform a new master that the layout may have changed while
> @@ -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,
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index bb924cddc09c..835c38a76ef6 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -311,8 +311,8 @@ 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,
> -                       bool from_open);
> +     void (*master_set)(struct drm_device *dev, struct drm_file *file_priv,
> +                        bool from_open);
>       /**
>        * @master_drop:
>        *
> -- 
> 2.25.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to