staging: dgnc: audit goto's in dgnc_mgmt
authorTobin C. Harding <me@tobin.cc>
Tue, 7 Mar 2017 09:57:02 +0000 (20:57 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Mar 2017 13:46:34 +0000 (14:46 +0100)
TODO file requests fix up of error handling.

Audit dgnc_mgmt.c and fix all return paths to be uniform and inline
with kernel coding style.

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/dgnc/dgnc_mgmt.c

index 9d9b15d6358aae49f0e8fcf8d84a9ab8f66a2dcb..9e984ebea8f96b8a66c9a2cc2e7eb11726c331ab 100644 (file)
@@ -42,25 +42,25 @@ int dgnc_mgmt_open(struct inode *inode, struct file *file)
 {
        unsigned long flags;
        unsigned int minor = iminor(inode);
+       int rc = 0;
 
        spin_lock_irqsave(&dgnc_global_lock, flags);
 
        /* mgmt device */
-       if (minor < MAXMGMTDEVICES) {
-               /* Only allow 1 open at a time on mgmt device */
-               if (dgnc_mgmt_in_use[minor]) {
-                       spin_unlock_irqrestore(&dgnc_global_lock, flags);
-                       return -EBUSY;
-               }
-               dgnc_mgmt_in_use[minor]++;
-       } else {
-               spin_unlock_irqrestore(&dgnc_global_lock, flags);
-               return -ENXIO;
+       if (minor >= MAXMGMTDEVICES) {
+               rc = -ENXIO;
+               goto out;
        }
+       /* Only allow 1 open at a time on mgmt device */
+       if (dgnc_mgmt_in_use[minor]) {
+               rc = -EBUSY;
+               goto out;
+       }
+       dgnc_mgmt_in_use[minor]++;
 
+out:
        spin_unlock_irqrestore(&dgnc_global_lock, flags);
-
-       return 0;
+       return rc;
 }
 
 /*
@@ -72,17 +72,20 @@ int dgnc_mgmt_close(struct inode *inode, struct file *file)
 {
        unsigned long flags;
        unsigned int minor = iminor(inode);
+       int rc = 0;
 
        spin_lock_irqsave(&dgnc_global_lock, flags);
 
        /* mgmt device */
-       if (minor < MAXMGMTDEVICES) {
-               if (dgnc_mgmt_in_use[minor])
-                       dgnc_mgmt_in_use[minor] = 0;
+       if (minor >= MAXMGMTDEVICES) {
+               rc = -ENXIO;
+               goto out;
        }
-       spin_unlock_irqrestore(&dgnc_global_lock, flags);
+       dgnc_mgmt_in_use[minor] = 0;
 
-       return 0;
+out:
+       spin_unlock_irqrestore(&dgnc_global_lock, flags);
+       return rc;
 }
 
 /*