From: Bernhard Rosenkraenzer Signed-off-by: Andrew Morton --- 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; _