Commit 90e73491 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman Committed by Daniel Vetter

vga_switcheroo: no need to check return value of debugfs_create functions

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@wunner.de>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Sean Paul <sean@poorly.run>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190613114455.GA13119@kroah.com
parent 92172173
...@@ -133,7 +133,6 @@ static DEFINE_MUTEX(vgasr_mutex); ...@@ -133,7 +133,6 @@ static DEFINE_MUTEX(vgasr_mutex);
* @delayed_switch_active: whether a delayed switch is pending * @delayed_switch_active: whether a delayed switch is pending
* @delayed_client_id: client to which a delayed switch is pending * @delayed_client_id: client to which a delayed switch is pending
* @debugfs_root: directory for vga_switcheroo debugfs interface * @debugfs_root: directory for vga_switcheroo debugfs interface
* @switch_file: file for vga_switcheroo debugfs interface
* @registered_clients: number of registered GPUs * @registered_clients: number of registered GPUs
* (counting only vga clients, not audio clients) * (counting only vga clients, not audio clients)
* @clients: list of registered clients * @clients: list of registered clients
...@@ -152,7 +151,6 @@ struct vgasr_priv { ...@@ -152,7 +151,6 @@ struct vgasr_priv {
enum vga_switcheroo_client_id delayed_client_id; enum vga_switcheroo_client_id delayed_client_id;
struct dentry *debugfs_root; struct dentry *debugfs_root;
struct dentry *switch_file;
int registered_clients; int registered_clients;
struct list_head clients; struct list_head clients;
...@@ -168,7 +166,7 @@ struct vgasr_priv { ...@@ -168,7 +166,7 @@ struct vgasr_priv {
#define client_is_vga(c) (!client_is_audio(c)) #define client_is_vga(c) (!client_is_audio(c))
#define client_id(c) ((c)->id & ~ID_BIT_AUDIO) #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); static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv);
/* only one switcheroo per system */ /* only one switcheroo per system */
...@@ -914,38 +912,20 @@ static const struct file_operations vga_switcheroo_debugfs_fops = { ...@@ -914,38 +912,20 @@ static const struct file_operations vga_switcheroo_debugfs_fops = {
static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv) static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv)
{ {
debugfs_remove(priv->switch_file); debugfs_remove_recursive(priv->debugfs_root);
priv->switch_file = NULL;
debugfs_remove(priv->debugfs_root);
priv->debugfs_root = NULL; 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 */ /* already initialised */
if (priv->debugfs_root) if (priv->debugfs_root)
return 0; return;
priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
if (!priv->debugfs_root) { priv->debugfs_root = debugfs_create_dir("vgaswitcheroo", NULL);
pr_err("Cannot create %s/vgaswitcheroo\n", mp);
goto fail;
}
priv->switch_file = debugfs_create_file("switch", 0644, debugfs_create_file("switch", 0644, priv->debugfs_root, NULL,
priv->debugfs_root, NULL,
&vga_switcheroo_debugfs_fops); &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;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment