staging: dgnc: audit goto's in dgnc_mgmt
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>
This commit is contained in:
Родитель
c8863b3ff7
Коммит
7029064dd1
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче