|
@@ -223,6 +223,18 @@ static void reset_buffer_flags(struct tty_struct *tty)
|
|
|
n_tty_set_room(tty);
|
|
|
}
|
|
|
|
|
|
+static void n_tty_packet_mode_flush(struct tty_struct *tty)
|
|
|
+{
|
|
|
+ unsigned long flags;
|
|
|
+
|
|
|
+ spin_lock_irqsave(&tty->ctrl_lock, flags);
|
|
|
+ if (tty->link->packet) {
|
|
|
+ tty->ctrl_status |= TIOCPKT_FLUSHREAD;
|
|
|
+ wake_up_interruptible(&tty->link->read_wait);
|
|
|
+ }
|
|
|
+ spin_unlock_irqrestore(&tty->ctrl_lock, flags);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* n_tty_flush_buffer - clean input queue
|
|
|
* @tty: terminal device
|
|
@@ -237,19 +249,11 @@ static void reset_buffer_flags(struct tty_struct *tty)
|
|
|
|
|
|
static void n_tty_flush_buffer(struct tty_struct *tty)
|
|
|
{
|
|
|
- unsigned long flags;
|
|
|
/* clear everything and unthrottle the driver */
|
|
|
reset_buffer_flags(tty);
|
|
|
|
|
|
- if (!tty->link)
|
|
|
- return;
|
|
|
-
|
|
|
- spin_lock_irqsave(&tty->ctrl_lock, flags);
|
|
|
- if (tty->link->packet) {
|
|
|
- tty->ctrl_status |= TIOCPKT_FLUSHREAD;
|
|
|
- wake_up_interruptible(&tty->link->read_wait);
|
|
|
- }
|
|
|
- spin_unlock_irqrestore(&tty->ctrl_lock, flags);
|
|
|
+ if (tty->link)
|
|
|
+ n_tty_packet_mode_flush(tty);
|
|
|
}
|
|
|
|
|
|
/**
|