diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2007-06-08 13:46:53 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-08 17:23:33 -0700 |
commit | 49277b1c68f9bd22119a5174a68254ec1b39d8c2 (patch) | |
tree | f95f0104b6f6ae85d87465ebbc167402dde645b2 /drivers/char/stallion.c | |
parent | e415109f5a1ec9ca7dac4fad2b852113ce303c96 (diff) | |
download | lwn-49277b1c68f9bd22119a5174a68254ec1b39d8c2.tar.gz lwn-49277b1c68f9bd22119a5174a68254ec1b39d8c2.zip |
Char: stallion, proper fail return values
do not return 0 in one case and return proper values in other 2.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/stallion.c')
-rw-r--r-- | drivers/char/stallion.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index 23ea4c881f58..45bf2a262a85 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c @@ -2177,6 +2177,7 @@ static int __devinit stl_initech(struct stlbrd *brdp) if (!panelp) { printk("STALLION: failed to allocate memory " "(size=%Zd)\n", sizeof(struct stlpanel)); + retval = -ENOMEM; goto err_fr; } panelp->magic = STL_PANELMAGIC; @@ -2223,8 +2224,10 @@ static int __devinit stl_initech(struct stlbrd *brdp) brdp->nrports += panelp->nrports; brdp->panels[panelnr++] = panelp; if ((brdp->brdtype != BRD_ECHPCI) && - (ioaddr >= (brdp->ioaddr2 + brdp->iosize2))) + (ioaddr >= (brdp->ioaddr2 + brdp->iosize2))) { + retval = -EINVAL; goto err_fr; + } } brdp->nrpanels = panelnr; @@ -2371,6 +2374,7 @@ static int __devinit stl_pciprobe(struct pci_dev *pdev, dev_err(&pdev->dev, "too many boards found, " "maximum supported %d\n", STL_MAXBRDS); mutex_unlock(&stl_brdslock); + retval = -ENODEV; goto err_fr; } brdp->brdnr = (unsigned int)brdnr; |