lkml.org 
[lkml]   [2009]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 25/30] tty: moxa, fix refcounting in moxa_poll_port
    Date
    From: Jiri Slaby <jirislaby@gmail.com>

    There is missing tty_kref_put on some paths in moxa_poll_port,
    although the reference is always taken. Fix it.

    Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
    Reported-by: Jan 'Yenya' Kasprzak <kas@fi.muni.cz>
    Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
    ---

    drivers/char/moxa.c | 9 +++++----
    1 files changed, 5 insertions(+), 4 deletions(-)


    diff --git a/drivers/char/moxa.c b/drivers/char/moxa.c
    index 8b0da97..4a4cab7 100644
    --- a/drivers/char/moxa.c
    +++ b/drivers/char/moxa.c
    @@ -1486,11 +1486,11 @@ static int moxa_poll_port(struct moxa_port *p, unsigned int handle,
    }

    if (!handle) /* nothing else to do */
    - return 0;
    + goto put;

    intr = readw(ip); /* port irq status */
    if (intr == 0)
    - return 0;
    + goto put;

    writew(0, ip); /* ACK port */
    ofsAddr = p->tableAddr;
    @@ -1499,16 +1499,17 @@ static int moxa_poll_port(struct moxa_port *p, unsigned int handle,
    ofsAddr + HostStat);

    if (!inited)
    - return 0;
    + goto put;

    if (tty && (intr & IntrBreak) && !I_IGNBRK(tty)) { /* BREAK */
    tty_insert_flip_char(tty, 0, TTY_BREAK);
    tty_schedule_flip(tty);
    }
    - tty_kref_put(tty);

    if (intr & IntrLine)
    moxa_new_dcdstate(p, readb(ofsAddr + FlagStat) & DCD_state);
    +put:
    + tty_kref_put(tty);

    return 0;
    }


    \
     
     \ /
      Last update: 2009-03-24 15:23    [W:3.386 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site