From ef6be0acdb75b3a1db5f75adb7758af567e5e6d6 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Thu, 16 Jul 2009 16:06:18 +0100 Subject: [PATCH] --- yaml --- r: 155500 b: refs/heads/master c: 9237a81a1468d0aca1cc4e244bba2362d6f81b35 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/char/nozomi.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 25249fe22e9f..bb65b7ce0d0e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5c9228f0cfb09a098a8a380116b42ae099e967b6 +refs/heads/master: 9237a81a1468d0aca1cc4e244bba2362d6f81b35 diff --git a/trunk/drivers/char/nozomi.c b/trunk/drivers/char/nozomi.c index 574f1c79b6e6..280b41c507a7 100644 --- a/trunk/drivers/char/nozomi.c +++ b/trunk/drivers/char/nozomi.c @@ -828,7 +828,7 @@ static int receive_data(enum port_type index, struct nozomi *dc) struct port *port = &dc->port[index]; void __iomem *addr = port->dl_addr[port->toggle_dl]; struct tty_struct *tty = tty_port_tty_get(&port->port); - int i; + int i, ret; if (unlikely(!tty)) { DBG1("tty not open for port: %d?", index); @@ -844,12 +844,14 @@ static int receive_data(enum port_type index, struct nozomi *dc) /* disable interrupt in downlink... */ disable_transmit_dl(index, dc); - return 0; + ret = 0; + goto put; } if (unlikely(size == 0)) { dev_err(&dc->pdev->dev, "size == 0?\n"); - return 1; + ret = 1; + goto put; } tty_buffer_request_room(tty, size); @@ -871,8 +873,10 @@ static int receive_data(enum port_type index, struct nozomi *dc) } set_bit(index, &dc->flip); + ret = 1; +put: tty_kref_put(tty); - return 1; + return ret; } /* Debug for interrupts */