x25_asy: Fix ref count rule violation

x25_asy does not take an ldisc reference before calling the flush method.
Fix it to use the helper function we provide.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Krzysztof Halasa <khc@pm.waw.pl>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Alan Cox 2008-02-08 15:00:48 -08:00 коммит произвёл Linus Torvalds
Родитель 4600ecfcf3
Коммит 11b0cc3a4a
1 изменённых файлов: 2 добавлений и 3 удалений

Просмотреть файл

@ -554,6 +554,7 @@ static void x25_asy_receive_buf(struct tty_struct *tty, const unsigned char *cp,
static int x25_asy_open_tty(struct tty_struct *tty) static int x25_asy_open_tty(struct tty_struct *tty)
{ {
struct x25_asy *sl = (struct x25_asy *) tty->disc_data; struct x25_asy *sl = (struct x25_asy *) tty->disc_data;
struct tty_ldisc *ld;
int err; int err;
/* First make sure we're not already connected. */ /* First make sure we're not already connected. */
@ -572,9 +573,7 @@ static int x25_asy_open_tty(struct tty_struct *tty)
if (tty->driver->flush_buffer) { if (tty->driver->flush_buffer) {
tty->driver->flush_buffer(tty); tty->driver->flush_buffer(tty);
} }
if (tty->ldisc.flush_buffer) { tty_ldisc_flush(tty);
tty->ldisc.flush_buffer(tty);
}
/* Restore default settings */ /* Restore default settings */
sl->dev->type = ARPHRD_X25; sl->dev->type = ARPHRD_X25;