From: Bernhard Rosenkraenzer <bero@arklinux.org>


Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/char/generic_serial.c |    4 ++--
 25-akpm/drivers/char/moxa.c           |    4 ++--
 25-akpm/drivers/char/mxser.c          |    1 +
 3 files changed, 5 insertions(+), 4 deletions(-)

diff -puN drivers/char/generic_serial.c~serial-driver-compile-fixes drivers/char/generic_serial.c
--- 25/drivers/char/generic_serial.c~serial-driver-compile-fixes	2004-09-23 00:07:37.837445184 -0700
+++ 25-akpm/drivers/char/generic_serial.c	2004-09-23 00:07:37.848443512 -0700
@@ -692,7 +692,7 @@ void gs_close(struct tty_struct * tty, s
 	struct gs_port *port;
 	struct tty_ldisc *ld;
 
-	func_enter ()
+	func_enter ();
 
 	if (!tty) return;
 
@@ -760,7 +760,7 @@ void gs_close(struct tty_struct * tty, s
 
 	ld = tty_ldisc_ref(tty);
 	if (ld != NULL) {
-		ld->flush_buffer)
+		if(ld->flush_buffer)
 			ld->flush_buffer(tty);
 		tty_ldisc_deref(ld);
 	}
diff -puN drivers/char/moxa.c~serial-driver-compile-fixes drivers/char/moxa.c
--- 25/drivers/char/moxa.c~serial-driver-compile-fixes	2004-09-23 00:07:37.839444880 -0700
+++ 25-akpm/drivers/char/moxa.c	2004-09-23 00:07:37.846443816 -0700
@@ -958,7 +958,7 @@ static void moxa_poll(unsigned long igno
 				if (MoxaPortTxQueue(ch->port) <= WAKEUP_CHARS) {
 					if (!tp->stopped) {
 						ch->statusflags &= ~LOWWAIT;
-						tty_wakeup(tty);
+						tty_wakeup(ch->tty);
 						wake_up_interruptible(&tp->write_wait);
 					}
 				}
@@ -1125,7 +1125,7 @@ static void check_xmit_empty(unsigned lo
 	if (ch->tty && (ch->statusflags & EMPTYWAIT)) {
 		if (MoxaPortTxQueue(ch->port) == 0) {
 			ch->statusflags &= ~EMPTYWAIT;
-			tty_wakeup(tty);
+			tty_wakeup(ch->tty);
 			wake_up_interruptible(&ch->tty->write_wait);
 			return;
 		}
diff -puN drivers/char/mxser.c~serial-driver-compile-fixes drivers/char/mxser.c
--- 25/drivers/char/mxser.c~serial-driver-compile-fixes	2004-09-23 00:07:37.840444728 -0700
+++ 25-akpm/drivers/char/mxser.c	2004-09-23 00:07:37.847443664 -0700
@@ -740,6 +740,7 @@ static void mxser_close(struct tty_struc
 	struct mxser_struct *info = (struct mxser_struct *) tty->driver_data;
 	unsigned long flags;
 	unsigned long timeout;
+	struct tty_ldisc *ld;
 
 	if (PORTNO(tty) == MXSER_PORTS)
 		return;
_