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

drm: 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.

Because there is no need to check these functions, a number of local
functions can be made to return void to simplify things as nothing can
fail.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
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/20190613133439.GA6715@kroah.com
parent 5b038dcf
...@@ -464,10 +464,7 @@ int drm_connector_register(struct drm_connector *connector) ...@@ -464,10 +464,7 @@ int drm_connector_register(struct drm_connector *connector)
if (ret) if (ret)
goto unlock; goto unlock;
ret = drm_debugfs_connector_add(connector); drm_debugfs_connector_add(connector);
if (ret) {
goto err_sysfs;
}
if (connector->funcs->late_register) { if (connector->funcs->late_register) {
ret = connector->funcs->late_register(connector); ret = connector->funcs->late_register(connector);
...@@ -482,7 +479,6 @@ int drm_connector_register(struct drm_connector *connector) ...@@ -482,7 +479,6 @@ int drm_connector_register(struct drm_connector *connector)
err_debugfs: err_debugfs:
drm_debugfs_connector_remove(connector); drm_debugfs_connector_remove(connector);
err_sysfs:
drm_sysfs_connector_remove(connector); drm_sysfs_connector_remove(connector);
unlock: unlock:
mutex_unlock(&connector->mutex); mutex_unlock(&connector->mutex);
......
...@@ -122,9 +122,7 @@ int drm_crtc_register_all(struct drm_device *dev) ...@@ -122,9 +122,7 @@ int drm_crtc_register_all(struct drm_device *dev)
int ret = 0; int ret = 0;
drm_for_each_crtc(crtc, dev) { drm_for_each_crtc(crtc, dev) {
if (drm_debugfs_crtc_add(crtc)) drm_debugfs_crtc_add(crtc);
DRM_ERROR("Failed to initialize debugfs entry for CRTC '%s'.\n",
crtc->name);
if (crtc->funcs->late_register) if (crtc->funcs->late_register)
ret = crtc->funcs->late_register(crtc); ret = crtc->funcs->late_register(crtc);
......
...@@ -229,10 +229,6 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id, ...@@ -229,10 +229,6 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
mutex_init(&minor->debugfs_lock); mutex_init(&minor->debugfs_lock);
sprintf(name, "%d", minor_id); sprintf(name, "%d", minor_id);
minor->debugfs_root = debugfs_create_dir(name, root); minor->debugfs_root = debugfs_create_dir(name, root);
if (!minor->debugfs_root) {
DRM_ERROR("Cannot create /sys/kernel/debug/dri/%s\n", name);
return -1;
}
ret = drm_debugfs_create_files(drm_debugfs_list, DRM_DEBUGFS_ENTRIES, ret = drm_debugfs_create_files(drm_debugfs_list, DRM_DEBUGFS_ENTRIES,
minor->debugfs_root, minor); minor->debugfs_root, minor);
...@@ -313,17 +309,15 @@ static void drm_debugfs_remove_all_files(struct drm_minor *minor) ...@@ -313,17 +309,15 @@ static void drm_debugfs_remove_all_files(struct drm_minor *minor)
mutex_unlock(&minor->debugfs_lock); mutex_unlock(&minor->debugfs_lock);
} }
int drm_debugfs_cleanup(struct drm_minor *minor) void drm_debugfs_cleanup(struct drm_minor *minor)
{ {
if (!minor->debugfs_root) if (!minor->debugfs_root)
return 0; return;
drm_debugfs_remove_all_files(minor); drm_debugfs_remove_all_files(minor);
debugfs_remove_recursive(minor->debugfs_root); debugfs_remove_recursive(minor->debugfs_root);
minor->debugfs_root = NULL; minor->debugfs_root = NULL;
return 0;
} }
static int connector_show(struct seq_file *m, void *data) static int connector_show(struct seq_file *m, void *data)
...@@ -441,38 +435,24 @@ static const struct file_operations drm_connector_fops = { ...@@ -441,38 +435,24 @@ static const struct file_operations drm_connector_fops = {
.write = connector_write .write = connector_write
}; };
int drm_debugfs_connector_add(struct drm_connector *connector) void drm_debugfs_connector_add(struct drm_connector *connector)
{ {
struct drm_minor *minor = connector->dev->primary; struct drm_minor *minor = connector->dev->primary;
struct dentry *root, *ent; struct dentry *root;
if (!minor->debugfs_root) if (!minor->debugfs_root)
return -1; return;
root = debugfs_create_dir(connector->name, minor->debugfs_root); root = debugfs_create_dir(connector->name, minor->debugfs_root);
if (!root)
return -ENOMEM;
connector->debugfs_entry = root; connector->debugfs_entry = root;
/* force */ /* force */
ent = debugfs_create_file("force", S_IRUGO | S_IWUSR, root, connector, debugfs_create_file("force", S_IRUGO | S_IWUSR, root, connector,
&drm_connector_fops); &drm_connector_fops);
if (!ent)
goto error;
/* edid */ /* edid */
ent = debugfs_create_file("edid_override", S_IRUGO | S_IWUSR, root, debugfs_create_file("edid_override", S_IRUGO | S_IWUSR, root, connector,
connector, &drm_edid_fops); &drm_edid_fops);
if (!ent)
goto error;
return 0;
error:
debugfs_remove_recursive(connector->debugfs_entry);
connector->debugfs_entry = NULL;
return -ENOMEM;
} }
void drm_debugfs_connector_remove(struct drm_connector *connector) void drm_debugfs_connector_remove(struct drm_connector *connector)
...@@ -485,7 +465,7 @@ void drm_debugfs_connector_remove(struct drm_connector *connector) ...@@ -485,7 +465,7 @@ void drm_debugfs_connector_remove(struct drm_connector *connector)
connector->debugfs_entry = NULL; connector->debugfs_entry = NULL;
} }
int drm_debugfs_crtc_add(struct drm_crtc *crtc) void drm_debugfs_crtc_add(struct drm_crtc *crtc)
{ {
struct drm_minor *minor = crtc->dev->primary; struct drm_minor *minor = crtc->dev->primary;
struct dentry *root; struct dentry *root;
...@@ -493,23 +473,14 @@ int drm_debugfs_crtc_add(struct drm_crtc *crtc) ...@@ -493,23 +473,14 @@ int drm_debugfs_crtc_add(struct drm_crtc *crtc)
name = kasprintf(GFP_KERNEL, "crtc-%d", crtc->index); name = kasprintf(GFP_KERNEL, "crtc-%d", crtc->index);
if (!name) if (!name)
return -ENOMEM; return;
root = debugfs_create_dir(name, minor->debugfs_root); root = debugfs_create_dir(name, minor->debugfs_root);
kfree(name); kfree(name);
if (!root)
return -ENOMEM;
crtc->debugfs_entry = root; crtc->debugfs_entry = root;
if (drm_debugfs_crtc_crc_add(crtc)) drm_debugfs_crtc_crc_add(crtc);
goto error;
return 0;
error:
drm_debugfs_crtc_remove(crtc);
return -ENOMEM;
} }
void drm_debugfs_crtc_remove(struct drm_crtc *crtc) void drm_debugfs_crtc_remove(struct drm_crtc *crtc)
......
...@@ -351,33 +351,19 @@ static const struct file_operations drm_crtc_crc_data_fops = { ...@@ -351,33 +351,19 @@ static const struct file_operations drm_crtc_crc_data_fops = {
.release = crtc_crc_release, .release = crtc_crc_release,
}; };
int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc) void drm_debugfs_crtc_crc_add(struct drm_crtc *crtc)
{ {
struct dentry *crc_ent, *ent; struct dentry *crc_ent;
if (!crtc->funcs->set_crc_source || !crtc->funcs->verify_crc_source) if (!crtc->funcs->set_crc_source || !crtc->funcs->verify_crc_source)
return 0; return;
crc_ent = debugfs_create_dir("crc", crtc->debugfs_entry); crc_ent = debugfs_create_dir("crc", crtc->debugfs_entry);
if (!crc_ent)
return -ENOMEM;
ent = debugfs_create_file("control", S_IRUGO, crc_ent, crtc,
&drm_crtc_crc_control_fops);
if (!ent)
goto error;
ent = debugfs_create_file("data", S_IRUGO, crc_ent, crtc,
&drm_crtc_crc_data_fops);
if (!ent)
goto error;
return 0;
error:
debugfs_remove_recursive(crc_ent);
return -ENOMEM; debugfs_create_file("control", S_IRUGO, crc_ent, crtc,
&drm_crtc_crc_control_fops);
debugfs_create_file("data", S_IRUGO, crc_ent, crtc,
&drm_crtc_crc_data_fops);
} }
/** /**
......
...@@ -1164,11 +1164,6 @@ static int __init drm_core_init(void) ...@@ -1164,11 +1164,6 @@ static int __init drm_core_init(void)
} }
drm_debugfs_root = debugfs_create_dir("dri", NULL); drm_debugfs_root = debugfs_create_dir("dri", NULL);
if (!drm_debugfs_root) {
ret = -ENOMEM;
DRM_ERROR("Cannot create debugfs-root: %d\n", ret);
goto error;
}
ret = register_chrdev(DRM_MAJOR, "drm", &drm_stub_fops); ret = register_chrdev(DRM_MAJOR, "drm", &drm_stub_fops);
if (ret < 0) if (ret < 0)
......
...@@ -137,12 +137,12 @@ void drm_gem_print_info(struct drm_printer *p, unsigned int indent, ...@@ -137,12 +137,12 @@ void drm_gem_print_info(struct drm_printer *p, unsigned int indent,
#if defined(CONFIG_DEBUG_FS) #if defined(CONFIG_DEBUG_FS)
int drm_debugfs_init(struct drm_minor *minor, int minor_id, int drm_debugfs_init(struct drm_minor *minor, int minor_id,
struct dentry *root); struct dentry *root);
int drm_debugfs_cleanup(struct drm_minor *minor); void drm_debugfs_cleanup(struct drm_minor *minor);
int drm_debugfs_connector_add(struct drm_connector *connector); void drm_debugfs_connector_add(struct drm_connector *connector);
void drm_debugfs_connector_remove(struct drm_connector *connector); void drm_debugfs_connector_remove(struct drm_connector *connector);
int drm_debugfs_crtc_add(struct drm_crtc *crtc); void drm_debugfs_crtc_add(struct drm_crtc *crtc);
void drm_debugfs_crtc_remove(struct drm_crtc *crtc); void drm_debugfs_crtc_remove(struct drm_crtc *crtc);
int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc); void drm_debugfs_crtc_crc_add(struct drm_crtc *crtc);
#else #else
static inline int drm_debugfs_init(struct drm_minor *minor, int minor_id, static inline int drm_debugfs_init(struct drm_minor *minor, int minor_id,
struct dentry *root) struct dentry *root)
...@@ -150,30 +150,26 @@ static inline int drm_debugfs_init(struct drm_minor *minor, int minor_id, ...@@ -150,30 +150,26 @@ static inline int drm_debugfs_init(struct drm_minor *minor, int minor_id,
return 0; return 0;
} }
static inline int drm_debugfs_cleanup(struct drm_minor *minor) static inline void drm_debugfs_cleanup(struct drm_minor *minor)
{ {
return 0;
} }
static inline int drm_debugfs_connector_add(struct drm_connector *connector) static inline void drm_debugfs_connector_add(struct drm_connector *connector)
{ {
return 0;
} }
static inline void drm_debugfs_connector_remove(struct drm_connector *connector) static inline void drm_debugfs_connector_remove(struct drm_connector *connector)
{ {
} }
static inline int drm_debugfs_crtc_add(struct drm_crtc *crtc) static inline void drm_debugfs_crtc_add(struct drm_crtc *crtc)
{ {
return 0;
} }
static inline void drm_debugfs_crtc_remove(struct drm_crtc *crtc) static inline void drm_debugfs_crtc_remove(struct drm_crtc *crtc)
{ {
} }
static inline int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc) static inline void drm_debugfs_crtc_crc_add(struct drm_crtc *crtc)
{ {
return 0;
} }
#endif #endif
......
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