[PATCH] vga_switcheroo: no need to check return value of debugfs_create functions

Daniel Vetter daniel at ffwll.ch
Thu Jun 13 13:08:16 UTC 2019


On Thu, Jun 13, 2019 at 01:44:55PM +0200, Greg Kroah-Hartman wrote:
> When calling debugfs functions, there is no need to ever check the
> return value.  The function can work or not, but the code logic should
> never do something different based on this.
> 
> Also, because there is no need to save the file dentry, remove the local
> variable and just recursively delete the whole directory when shutting
> down.
> 
> Cc: Lukas Wunner <lukas at wunner.de>
> Cc: David Airlie <airlied at linux.ie>
> Cc: Daniel Vetter <daniel at ffwll.ch>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Maxime Ripard <maxime.ripard at bootlin.com>
> Cc: Sean Paul <sean at poorly.run>
> Cc: dri-devel at lists.freedesktop.org
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

Applied to drm-misc-next, thanks.
-Daniel

> ---
>  drivers/gpu/vga/vga_switcheroo.c | 34 +++++++-------------------------
>  1 file changed, 7 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
> index a132c37d7334..a48d810d6ccb 100644
> --- a/drivers/gpu/vga/vga_switcheroo.c
> +++ b/drivers/gpu/vga/vga_switcheroo.c
> @@ -133,7 +133,6 @@ static DEFINE_MUTEX(vgasr_mutex);
>   * @delayed_switch_active: whether a delayed switch is pending
>   * @delayed_client_id: client to which a delayed switch is pending
>   * @debugfs_root: directory for vga_switcheroo debugfs interface
> - * @switch_file: file for vga_switcheroo debugfs interface
>   * @registered_clients: number of registered GPUs
>   *	(counting only vga clients, not audio clients)
>   * @clients: list of registered clients
> @@ -152,7 +151,6 @@ struct vgasr_priv {
>  	enum vga_switcheroo_client_id delayed_client_id;
>  
>  	struct dentry *debugfs_root;
> -	struct dentry *switch_file;
>  
>  	int registered_clients;
>  	struct list_head clients;
> @@ -168,7 +166,7 @@ struct vgasr_priv {
>  #define client_is_vga(c)		(!client_is_audio(c))
>  #define client_id(c)		((c)->id & ~ID_BIT_AUDIO)
>  
> -static int vga_switcheroo_debugfs_init(struct vgasr_priv *priv);
> +static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv);
>  static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv);
>  
>  /* only one switcheroo per system */
> @@ -914,38 +912,20 @@ static const struct file_operations vga_switcheroo_debugfs_fops = {
>  
>  static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
>  {
> -	debugfs_remove(priv->switch_file);
> -	priv->switch_file = NULL;
> -
> -	debugfs_remove(priv->debugfs_root);
> +	debugfs_remove_recursive(priv->debugfs_root);
>  	priv->debugfs_root = NULL;
>  }
>  
> -static int vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
> +static void vga_switcheroo_debugfs_init(struct vgasr_priv *priv)
>  {
> -	static const char mp[] = "/sys/kernel/debug";
> -
>  	/* already initialised */
>  	if (priv->debugfs_root)
> -		return 0;
> -	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
> +		return;
>  
> -	if (!priv->debugfs_root) {
> -		pr_err("Cannot create %s/vgaswitcheroo\n", mp);
> -		goto fail;
> -	}
> +	priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
>  
> -	priv->switch_file = debugfs_create_file("switch", 0644,
> -						priv->debugfs_root, NULL,
> -						&vga_switcheroo_debugfs_fops);
> -	if (!priv->switch_file) {
> -		pr_err("cannot create %s/vgaswitcheroo/switch\n", mp);
> -		goto fail;
> -	}
> -	return 0;
> -fail:
> -	vga_switcheroo_debugfs_fini(priv);
> -	return -1;
> +	debugfs_create_file("switch", 0644, priv->debugfs_root, NULL,
> +			    &vga_switcheroo_debugfs_fops);
>  }
>  
>  /**
> -- 
> 2.22.0
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list