From 6f08b72cdd4b99a190c4e1fcddd63b401e5b572d Mon Sep 17 00:00:00 2001
From: Kirill Smelkov <kirr@mns.spb.ru>
Date: Mon, 7 Nov 2005 00:59:23 -0800
Subject: [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>
---
 drivers/char/mxser.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'drivers')

diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index d5c34af875..3b965a651d 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)
 	struct mxser_struct *info;
 	int retval, line;
 
+	/* initialize driver_data in case something fails */
+	tty->driver_data = NULL;
+
 	line = tty->index;
 	if (line == MXSER_PORTS)
 		return 0;
@@ -979,7 +982,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
 	if (tty->index == MXSER_PORTS)
 		return;
 	if (!info)
-		BUG();
+		return;
 
 	spin_lock_irqsave(&info->slock, flags);
 
-- 
cgit v1.2.2