You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
6.1 KiB
217 lines
6.1 KiB
From 5e4d56448e08a7f4bf39e1b3f4c43916ff74d337 Mon Sep 17 00:00:00 2001
|
|
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Date: Fri, 1 Jun 2018 13:09:59 +0200
|
|
Subject: [PATCH 381/454] staging: vc04_services: no need to check debugfs
|
|
return values
|
|
|
|
commit 0723103f8ba15a019bbcaf6f130d73d05337332f upstream
|
|
|
|
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.
|
|
|
|
Clean up the vchiq_arm code by not caring about the value of debugfs
|
|
calls. This ends up removing a number of lines of code that are not
|
|
needed.
|
|
|
|
Cc: Stefan Wahren <stefan.wahren@i2se.com>
|
|
Cc: Kees Cook <keescook@chromium.org>
|
|
Cc: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Cc: Arnd Bergmann <arnd@arndb.de>
|
|
Cc: Keerthi Reddy <keerthigd4990@gmail.com>
|
|
Cc: linux-rpi-kernel@lists.infradead.org
|
|
Cc: linux-arm-kernel@lists.infradead.org
|
|
Reviewed-by: Eric Anholt <eric@anholt.net>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
.../interface/vchiq_arm/vchiq_arm.c | 8 +-
|
|
.../interface/vchiq_arm/vchiq_debugfs.c | 73 +++----------------
|
|
.../interface/vchiq_arm/vchiq_debugfs.h | 4 +-
|
|
3 files changed, 15 insertions(+), 70 deletions(-)
|
|
|
|
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
|
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
|
@@ -1753,7 +1753,7 @@ vchiq_open(struct inode *inode, struct f
|
|
instance->state = state;
|
|
instance->pid = current->tgid;
|
|
|
|
- (void)vchiq_debugfs_add_instance(instance);
|
|
+ vchiq_debugfs_add_instance(instance);
|
|
|
|
sema_init(&instance->insert_event, 0);
|
|
sema_init(&instance->remove_event, 0);
|
|
@@ -3437,9 +3437,7 @@ static int vchiq_probe(struct platform_d
|
|
goto failed_device_create;
|
|
|
|
/* create debugfs entries */
|
|
- err = vchiq_debugfs_init();
|
|
- if (err != 0)
|
|
- goto failed_debugfs_init;
|
|
+ vchiq_debugfs_init();
|
|
|
|
vchiq_log_info(vchiq_arm_log_level,
|
|
"vchiq: initialised - version %d (min %d), device %d.%d",
|
|
@@ -3448,8 +3446,6 @@ static int vchiq_probe(struct platform_d
|
|
|
|
return 0;
|
|
|
|
-failed_debugfs_init:
|
|
- device_destroy(vchiq_class, vchiq_devid);
|
|
failed_device_create:
|
|
class_destroy(vchiq_class);
|
|
failed_class_create:
|
|
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c
|
|
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c
|
|
@@ -160,15 +160,12 @@ static const struct file_operations debu
|
|
};
|
|
|
|
/* create an entry under <debugfs>/vchiq/log for each log category */
|
|
-static int vchiq_debugfs_create_log_entries(struct dentry *top)
|
|
+static void vchiq_debugfs_create_log_entries(struct dentry *top)
|
|
{
|
|
struct dentry *dir;
|
|
size_t i;
|
|
- int ret = 0;
|
|
|
|
dir = debugfs_create_dir("log", vchiq_debugfs_top());
|
|
- if (!dir)
|
|
- return -ENOMEM;
|
|
debugfs_info.log_categories = dir;
|
|
|
|
for (i = 0; i < n_log_entries; i++) {
|
|
@@ -179,14 +176,8 @@ static int vchiq_debugfs_create_log_entr
|
|
debugfs_info.log_categories,
|
|
levp,
|
|
&debugfs_log_fops);
|
|
- if (!dir) {
|
|
- ret = -ENOMEM;
|
|
- break;
|
|
- }
|
|
-
|
|
vchiq_debugfs_log_entries[i].dir = dir;
|
|
}
|
|
- return ret;
|
|
}
|
|
|
|
static int debugfs_usecount_show(struct seq_file *f, void *offset)
|
|
@@ -270,43 +261,22 @@ static const struct file_operations debu
|
|
};
|
|
|
|
/* add an instance (process) to the debugfs entries */
|
|
-int vchiq_debugfs_add_instance(VCHIQ_INSTANCE_T instance)
|
|
+void vchiq_debugfs_add_instance(VCHIQ_INSTANCE_T instance)
|
|
{
|
|
char pidstr[16];
|
|
- struct dentry *top, *use_count, *trace;
|
|
+ struct dentry *top;
|
|
struct dentry *clients = vchiq_clients_top();
|
|
|
|
snprintf(pidstr, sizeof(pidstr), "%d",
|
|
vchiq_instance_get_pid(instance));
|
|
|
|
top = debugfs_create_dir(pidstr, clients);
|
|
- if (!top)
|
|
- goto fail_top;
|
|
|
|
- use_count = debugfs_create_file("use_count",
|
|
- 0444, top,
|
|
- instance,
|
|
- &debugfs_usecount_fops);
|
|
- if (!use_count)
|
|
- goto fail_use_count;
|
|
-
|
|
- trace = debugfs_create_file("trace",
|
|
- 0644, top,
|
|
- instance,
|
|
- &debugfs_trace_fops);
|
|
- if (!trace)
|
|
- goto fail_trace;
|
|
+ debugfs_create_file("use_count", 0444, top, instance,
|
|
+ &debugfs_usecount_fops);
|
|
+ debugfs_create_file("trace", 0644, top, instance, &debugfs_trace_fops);
|
|
|
|
vchiq_instance_get_debugfs_node(instance)->dentry = top;
|
|
-
|
|
- return 0;
|
|
-
|
|
-fail_trace:
|
|
- debugfs_remove(use_count);
|
|
-fail_use_count:
|
|
- debugfs_remove(top);
|
|
-fail_top:
|
|
- return -ENOMEM;
|
|
}
|
|
|
|
void vchiq_debugfs_remove_instance(VCHIQ_INSTANCE_T instance)
|
|
@@ -316,32 +286,13 @@ void vchiq_debugfs_remove_instance(VCHIQ
|
|
debugfs_remove_recursive(node->dentry);
|
|
}
|
|
|
|
-
|
|
-int vchiq_debugfs_init(void)
|
|
+void vchiq_debugfs_init(void)
|
|
{
|
|
- BUG_ON(debugfs_info.vchiq_cfg_dir != NULL);
|
|
-
|
|
debugfs_info.vchiq_cfg_dir = debugfs_create_dir("vchiq", NULL);
|
|
- if (debugfs_info.vchiq_cfg_dir == NULL)
|
|
- goto fail;
|
|
-
|
|
debugfs_info.clients = debugfs_create_dir("clients",
|
|
vchiq_debugfs_top());
|
|
- if (!debugfs_info.clients)
|
|
- goto fail;
|
|
|
|
- if (vchiq_debugfs_create_log_entries(vchiq_debugfs_top()) != 0)
|
|
- goto fail;
|
|
-
|
|
- return 0;
|
|
-
|
|
-fail:
|
|
- vchiq_debugfs_deinit();
|
|
- vchiq_log_error(vchiq_arm_log_level,
|
|
- "%s: failed to create debugfs directory",
|
|
- __func__);
|
|
-
|
|
- return -ENOMEM;
|
|
+ vchiq_debugfs_create_log_entries(vchiq_debugfs_top());
|
|
}
|
|
|
|
/* remove all the debugfs entries */
|
|
@@ -363,18 +314,16 @@ static struct dentry *vchiq_debugfs_top(
|
|
|
|
#else /* CONFIG_DEBUG_FS */
|
|
|
|
-int vchiq_debugfs_init(void)
|
|
+void vchiq_debugfs_init(void)
|
|
{
|
|
- return 0;
|
|
}
|
|
|
|
void vchiq_debugfs_deinit(void)
|
|
{
|
|
}
|
|
|
|
-int vchiq_debugfs_add_instance(VCHIQ_INSTANCE_T instance)
|
|
+void vchiq_debugfs_add_instance(VCHIQ_INSTANCE_T instance)
|
|
{
|
|
- return 0;
|
|
}
|
|
|
|
void vchiq_debugfs_remove_instance(VCHIQ_INSTANCE_T instance)
|
|
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.h
|
|
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.h
|
|
@@ -40,11 +40,11 @@ typedef struct vchiq_debugfs_node_struct
|
|
struct dentry *dentry;
|
|
} VCHIQ_DEBUGFS_NODE_T;
|
|
|
|
-int vchiq_debugfs_init(void);
|
|
+void vchiq_debugfs_init(void);
|
|
|
|
void vchiq_debugfs_deinit(void);
|
|
|
|
-int vchiq_debugfs_add_instance(VCHIQ_INSTANCE_T instance);
|
|
+void vchiq_debugfs_add_instance(VCHIQ_INSTANCE_T instance);
|
|
|
|
void vchiq_debugfs_remove_instance(VCHIQ_INSTANCE_T instance);
|
|
|
|
|