summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElad Wexler <elad.wexler@gmail.com>2013-09-14 17:02:11 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-26 17:53:23 +0200
commit684116caa44d1642fcbd4d1d5b9cb975572cfa0b (patch)
tree422fad1cdcf2f61bcbc7538fff531aee48fa3a8a
parentmisc: ibmasm: Remove casting the return value which is a void pointer (diff)
downloadlinux-684116caa44d1642fcbd4d1d5b9cb975572cfa0b.tar.xz
linux-684116caa44d1642fcbd4d1d5b9cb975572cfa0b.zip
Drivers: char: misc: 'misc_deregister()' changed the 'mutex_unlock' logic upon an error
This change improves code readability & is less error-prone. For example: case adding more error paths one should remember to call 'mutex_unlock' Signed-off-by: Elad Wexler <elad.wexler@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/char/misc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/misc.c b/drivers/char/misc.c
index 190d4423653f..2f685f6eda48 100644
--- a/drivers/char/misc.c
+++ b/drivers/char/misc.c
@@ -193,8 +193,8 @@ int misc_register(struct miscdevice * misc)
if (misc->minor == MISC_DYNAMIC_MINOR) {
int i = find_first_zero_bit(misc_minors, DYNAMIC_MINORS);
if (i >= DYNAMIC_MINORS) {
- mutex_unlock(&misc_mtx);
- return -EBUSY;
+ err = -EBUSY;
+ goto out;
}
misc->minor = DYNAMIC_MINORS - i - 1;
set_bit(i, misc_minors);
@@ -203,8 +203,8 @@ int misc_register(struct miscdevice * misc)
list_for_each_entry(c, &misc_list, list) {
if (c->minor == misc->minor) {
- mutex_unlock(&misc_mtx);
- return -EBUSY;
+ err = -EBUSY;
+ goto out;
}
}
}