aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2007-06-08 13:46:53 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-08 17:23:33 -0700
commit49277b1c68f9bd22119a5174a68254ec1b39d8c2 (patch)
treef95f0104b6f6ae85d87465ebbc167402dde645b2 /drivers/char
parentChar: stallion, alloc tty before pci devices init (diff)
downloadlinux-dev-49277b1c68f9bd22119a5174a68254ec1b39d8c2.tar.xz
linux-dev-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')
-rw-r--r--drivers/char/stallion.c6
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;