Skip to content

Commit

Permalink
tty: Clean up tiocmset
Browse files Browse the repository at this point in the history
Reverse the order of one test and it gets much more readable

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Jul 21, 2008
1 parent 8fb06c7 commit ae67751
Showing 1 changed file with 22 additions and 26 deletions.
48 changes: 22 additions & 26 deletions drivers/char/tty_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -3515,35 +3515,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);
}

/*
Expand Down

0 comments on commit ae67751

Please sign in to comment.