diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0381-staging-vc04_services-no-need-to-check-debugfs-retur.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.14/950-0381-staging-vc04_services-no-need-to-check-debugfs-retur.patch | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0381-staging-vc04_services-no-need-to-check-debugfs-retur.patch b/target/linux/brcm2708/patches-4.14/950-0381-staging-vc04_services-no-need-to-check-debugfs-retur.patch new file mode 100644 index 0000000000..1a8cfd1241 --- /dev/null +++ b/target/linux/brcm2708/patches-4.14/950-0381-staging-vc04_services-no-need-to-check-debugfs-retur.patch @@ -0,0 +1,217 @@ +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); + |