aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/mxser.c
diff options
context:
space:
mode:
authorKirill Smelkov <kirr@mns.spb.ru>2005-11-07 03:59:23 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 10:53:36 -0500
commit6f08b72cdd4b99a190c4e1fcddd63b401e5b572d (patch)
treeb872d31a8f05f66fa3d00cf1271582dc0d354c7c /drivers/char/mxser.c
parent64698b694db96b8db6f379de7d2040f61c6fc7bf (diff)
[PATCH] serial moxa: fix wrong BUG
There is a wrong BUG in mxser_close. The BUG is triggered when tty->driver_data == NULL, But in fact this is not a bug, because tty->driver->close is called even when tty->driver->open fails. LDD3 tells us to do nothing in such cases. Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/mxser.c')
-rw-r--r--drivers/char/mxser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index d5c34af8752d..3b965a651da4 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -917,6 +917,9 @@ static int mxser_open(struct tty_struct *tty, struct file *filp)
917 struct mxser_struct *info; 917 struct mxser_struct *info;
918 int retval, line; 918 int retval, line;
919 919
920 /* initialize driver_data in case something fails */
921 tty->driver_data = NULL;
922
920 line = tty->index; 923 line = tty->index;
921 if (line == MXSER_PORTS) 924 if (line == MXSER_PORTS)
922 return 0; 925 return 0;
@@ -979,7 +982,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
979 if (tty->index == MXSER_PORTS) 982 if (tty->index == MXSER_PORTS)
980 return; 983 return;
981 if (!info) 984 if (!info)
982 BUG(); 985 return;
983 986
984 spin_lock_irqsave(&info->slock, flags); 987 spin_lock_irqsave(&info->slock, flags);
985 988