2005-10-31 10:22:19

by Kirill Smelkov

[permalink] [raw]
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 <[email protected]>

Index: linux-2.6.14/drivers/char/mxser.c
===================================================================
--- linux-2.6.14.orig/drivers/char/mxser.c 2005-10-31 10:57:16.000000000 +0300
+++ linux-2.6.14/drivers/char/mxser.c 2005-10-31 11:24:58.000000000 +0300
@@ -917,6 +917,9 @@
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 @@
if (tty->index == MXSER_PORTS)
return;
if (!info)
- BUG();
+ return;

spin_lock_irqsave(&info->slock, flags);