lkml.org 
[lkml]   [2009]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 32/79] isicom: Split the close hardware bits out
    Date
    From: Alan Cox <alan@linux.intel.com>

    Start to extract and build a model for a common tty_port_close()

    Signed-off-by: Alan Cox <alan@linux.intel.com>
    ---
    drivers/char/isicom.c | 25 ++++++++++++++-----------
    1 files changed, 14 insertions(+), 11 deletions(-)

    diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
    index 4f1f4cd..08f5743 100644
    --- a/drivers/char/isicom.c
    +++ b/drivers/char/isicom.c
    @@ -952,19 +952,12 @@ static void isicom_flush_buffer(struct tty_struct *tty)
    tty_wakeup(tty);
    }

    -static void isicom_close(struct tty_struct *tty, struct file *filp)
    +static void isicom_close_port(struct tty_port *port)
    {
    - struct isi_port *ip = tty->driver_data;
    - struct tty_port *port = &ip->port;
    - struct isi_board *card;
    + struct isi_port *ip = container_of(port, struct isi_port, port);
    + struct isi_board *card = ip->card;
    unsigned long flags;

    - BUG_ON(!ip);
    -
    - card = ip->card;
    - if (isicom_paranoia_check(ip, tty->name, "isicom_close"))
    - return;
    -
    /* indicate to the card that no more data can be received
    on this port */
    spin_lock_irqsave(&card->card_lock, flags);
    @@ -974,9 +967,19 @@ static void isicom_close(struct tty_struct *tty, struct file *filp)
    }
    isicom_shutdown_port(ip);
    spin_unlock_irqrestore(&card->card_lock, flags);
    +}

    +static void isicom_close(struct tty_struct *tty, struct file *filp)
    +{
    + struct isi_port *ip = tty->driver_data;
    + struct tty_port *port = &ip->port;
    + if (isicom_paranoia_check(ip, tty->name, "isicom_close"))
    + return;
    +
    + if (tty_port_close_start(port, tty, filp) == 0)
    + return;
    + isicom_close_port(port);
    isicom_flush_buffer(tty);
    -
    tty_port_close_end(port, tty);
    }

    --
    1.6.4.2


    \
     
     \ /
      Last update: 2009-09-19 23:49    [W:7.096 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site