lkml.org 
[lkml]   [2012]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/5] TTY: provide tty_standard_install helper
    Date
    There are currently many cut&paste copies of what
    tty_driver_install_tty does when custom ->install method is not
    provided. Let's get rid of the copies and create a helper with this
    setup code.

    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Cc: Havard Skinnemoen <hskinnemoen@google.com>
    Cc: Greg Kroah-Hartman <gregkh@suse.de>
    Cc: Alan Cox <alan@linux.intel.com>
    ---
    drivers/tty/tty_io.c | 30 +++++++++++++++---------------
    include/linux/tty.h | 2 ++
    2 files changed, 17 insertions(+), 15 deletions(-)

    diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
    index fbcc140..44736f9 100644
    --- a/drivers/tty/tty_io.c
    +++ b/drivers/tty/tty_io.c
    @@ -1271,6 +1271,19 @@ int tty_init_termios(struct tty_struct *tty)
    }
    EXPORT_SYMBOL_GPL(tty_init_termios);

    +int tty_standard_install(struct tty_driver *driver, struct tty_struct *tty)
    +{
    + int ret = tty_init_termios(tty);
    + if (ret)
    + return ret;
    +
    + tty_driver_kref_get(driver);
    + tty->count++;
    + driver->ttys[tty->index] = tty;
    + return 0;
    +}
    +EXPORT_SYMBOL_GPL(tty_standard_install);
    +
    /**
    * tty_driver_install_tty() - install a tty entry in the driver
    * @driver: the driver for the tty
    @@ -1286,21 +1299,8 @@ EXPORT_SYMBOL_GPL(tty_init_termios);
    static int tty_driver_install_tty(struct tty_driver *driver,
    struct tty_struct *tty)
    {
    - int idx = tty->index;
    - int ret;
    -
    - if (driver->ops->install) {
    - ret = driver->ops->install(driver, tty);
    - return ret;
    - }
    -
    - if (tty_init_termios(tty) == 0) {
    - tty_driver_kref_get(driver);
    - tty->count++;
    - driver->ttys[idx] = tty;
    - return 0;
    - }
    - return -ENOMEM;
    + return driver->ops->install ? driver->ops->install(driver, tty) :
    + tty_standard_install(driver, tty);
    }

    /**
    diff --git a/include/linux/tty.h b/include/linux/tty.h
    index f801a85..653fc57 100644
    --- a/include/linux/tty.h
    +++ b/include/linux/tty.h
    @@ -490,6 +490,8 @@ extern void deinitialize_tty_struct(struct tty_struct *tty);
    extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx);
    extern int tty_release(struct inode *inode, struct file *filp);
    extern int tty_init_termios(struct tty_struct *tty);
    +extern int tty_standard_install(struct tty_driver *driver,
    + struct tty_struct *tty);

    extern struct tty_struct *tty_pair_get_tty(struct tty_struct *tty);
    extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty);
    --
    1.7.8.3



    \
     
     \ /
      Last update: 2012-01-30 21:23    [W:0.023 / U:0.204 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site