lkml.org 
[lkml]   [2008]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 19/70] tty: Clean up tiocmset
    Date
    From: Alan Cox <alan@redhat.com>

    Reverse the order of one test and it gets much more readable

    Signed-off-by: Alan Cox <alan@redhat.com>
    ---

    drivers/char/tty_io.c | 48 ++++++++++++++++++++++--------------------------
    1 files changed, 22 insertions(+), 26 deletions(-)


    diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
    index 1856096..87b1f9b 100644
    --- a/drivers/char/tty_io.c
    +++ b/drivers/char/tty_io.c
    @@ -3488,35 +3488,31 @@ static int tty_tiocmget(struct tty_struct *tty, struct file *file, int __user *p
    static int tty_tiocmset(struct tty_struct *tty, struct file *file, unsigned int cmd,
    unsigned __user *p)
    {
    - int retval = -EINVAL;
    -
    - if (tty->ops->tiocmset) {
    - unsigned int set, clear, val;
    -
    - retval = get_user(val, p);
    - if (retval)
    - return retval;
    -
    - set = clear = 0;
    - switch (cmd) {
    - case TIOCMBIS:
    - set = val;
    - break;
    - case TIOCMBIC:
    - clear = val;
    - break;
    - case TIOCMSET:
    - set = val;
    - clear = ~val;
    - break;
    - }
    + int retval;
    + unsigned int set, clear, val;

    - set &= TIOCM_DTR|TIOCM_RTS|TIOCM_OUT1|TIOCM_OUT2|TIOCM_LOOP;
    - clear &= TIOCM_DTR|TIOCM_RTS|TIOCM_OUT1|TIOCM_OUT2|TIOCM_LOOP;
    + if (tty->ops->tiocmset == NULL)
    + return -EINVAL;

    - retval = tty->ops->tiocmset(tty, file, set, clear);
    + retval = get_user(val, p);
    + if (retval)
    + return retval;
    + set = clear = 0;
    + switch (cmd) {
    + case TIOCMBIS:
    + set = val;
    + break;
    + case TIOCMBIC:
    + clear = val;
    + break;
    + case TIOCMSET:
    + set = val;
    + clear = ~val;
    + break;
    }
    - return retval;
    + set &= TIOCM_DTR|TIOCM_RTS|TIOCM_OUT1|TIOCM_OUT2|TIOCM_LOOP;
    + clear &= TIOCM_DTR|TIOCM_RTS|TIOCM_OUT1|TIOCM_OUT2|TIOCM_LOOP;
    + return tty->ops->tiocmset(tty, file, set, clear);
    }

    /*


    \
     
     \ /
      Last update: 2008-06-20 22:55    [W:4.177 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site