vserver 1.9.3
[linux-2.6.git] / drivers / serial / mcfserial.c
index dfed452..7f1b9ee 100644 (file)
@@ -424,11 +424,7 @@ static void mcfrs_offintr(void *private)
        tty = info->tty;
        if (!tty)
                return;
-
-       if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-           tty->ldisc.write_wakeup)
-               (tty->ldisc.write_wakeup)(tty);
-       wake_up_interruptible(&tty->write_wait);
+       tty_wakeup(tty);
 }
 
 
@@ -835,10 +831,7 @@ static void mcfrs_flush_buffer(struct tty_struct *tty)
        info->xmit_cnt = info->xmit_head = info->xmit_tail = 0;
        local_irq_restore(flags);
 
-       wake_up_interruptible(&tty->write_wait);
-       if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-           tty->ldisc.write_wakeup)
-               (tty->ldisc.write_wakeup)(tty);
+       tty_wakeup(tty);
 }
 
 /*
@@ -1232,11 +1225,12 @@ static void mcfrs_close(struct tty_struct *tty, struct file * filp)
        shutdown(info);
        if (tty->driver->flush_buffer)
                tty->driver->flush_buffer(tty);
-       if (tty->ldisc.flush_buffer)
-               tty->ldisc.flush_buffer(tty);
+       tty_ldisc_flush(tty);
+       
        tty->closing = 0;
        info->event = 0;
        info->tty = 0;
+#if 0  
        if (tty->ldisc.num != ldiscs[N_TTY].num) {
                if (tty->ldisc.close)
                        (tty->ldisc.close)(tty);
@@ -1245,6 +1239,7 @@ static void mcfrs_close(struct tty_struct *tty, struct file * filp)
                if (tty->ldisc.open)
                        (tty->ldisc.open)(tty);
        }
+#endif 
        if (info->blocked_open) {
                if (info->close_delay) {
                        current->state = TASK_INTERRUPTIBLE;