diff options
author | Joe Perches <joe@perches.com> | 2013-01-27 21:21:00 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-30 00:09:58 -0500 |
commit | 9fe8074b82ed14358be50c62ab9d081bcb911607 (patch) | |
tree | 53dd1345c50b76426747536bb681489f59aaa93f /drivers/char/pcmcia | |
parent | abd7bacae672298ec99ce6cfdc75ae1e1f9159b6 (diff) |
TTY: synclink: Convert + to | for bit operations
Dan Carpenter noticed a missing set of parentheses
around a multiple field addition.
https://lkml.org/lkml/2013/1/27/166
His original commit message:
There is a kind of precedence problem here, but it doesn't affect how
the code works because ->serial_signals is unsigned char. We want to
clear two flags here.
#define SerialSignal_RTS 0x20 /* Request to Send */
#define SerialSignal_DTR 0x80 /* Data Terminal Ready */
Without the parenthesis then it does:
info->serial_signals &= 0x5f;
With the parenthesis it does:
info->serial_signals &= 0xffffff5f;
info->serial_signals is an unsigned char so the two statements are
equivalent, but it's cleaner to add the parenthesis. In other dtr_rts()
functions the parenthesis are there so this makes it more consistent.
Other changes:
Convert all + uses to | for these bit operations.
Reorder the multiple fields for consistency.
Update the comments too.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char/pcmcia')
-rw-r--r-- | drivers/char/pcmcia/synclink_cs.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c index 34e52ed0ea8c..d0c9852ab875 100644 --- a/drivers/char/pcmcia/synclink_cs.c +++ b/drivers/char/pcmcia/synclink_cs.c | |||
@@ -1343,7 +1343,7 @@ static void shutdown(MGSLPC_INFO * info, struct tty_struct *tty) | |||
1343 | reset_device(info); | 1343 | reset_device(info); |
1344 | 1344 | ||
1345 | if (!tty || tty->termios.c_cflag & HUPCL) { | 1345 | if (!tty || tty->termios.c_cflag & HUPCL) { |
1346 | info->serial_signals &= ~(SerialSignal_DTR + SerialSignal_RTS); | 1346 | info->serial_signals &= ~(SerialSignal_RTS | SerialSignal_DTR); |
1347 | set_signals(info); | 1347 | set_signals(info); |
1348 | } | 1348 | } |
1349 | 1349 | ||
@@ -1405,12 +1405,12 @@ static void mgslpc_change_params(MGSLPC_INFO *info, struct tty_struct *tty) | |||
1405 | 1405 | ||
1406 | cflag = tty->termios.c_cflag; | 1406 | cflag = tty->termios.c_cflag; |
1407 | 1407 | ||
1408 | /* if B0 rate (hangup) specified then negate DTR and RTS */ | 1408 | /* if B0 rate (hangup) specified then negate RTS and DTR */ |
1409 | /* otherwise assert DTR and RTS */ | 1409 | /* otherwise assert RTS and DTR */ |
1410 | if (cflag & CBAUD) | 1410 | if (cflag & CBAUD) |
1411 | info->serial_signals |= SerialSignal_RTS + SerialSignal_DTR; | 1411 | info->serial_signals |= SerialSignal_RTS | SerialSignal_DTR; |
1412 | else | 1412 | else |
1413 | info->serial_signals &= ~(SerialSignal_RTS + SerialSignal_DTR); | 1413 | info->serial_signals &= ~(SerialSignal_RTS | SerialSignal_DTR); |
1414 | 1414 | ||
1415 | /* byte size and parity */ | 1415 | /* byte size and parity */ |
1416 | 1416 | ||
@@ -2301,7 +2301,7 @@ static void mgslpc_set_termios(struct tty_struct *tty, struct ktermios *old_term | |||
2301 | /* Handle transition to B0 status */ | 2301 | /* Handle transition to B0 status */ |
2302 | if (old_termios->c_cflag & CBAUD && | 2302 | if (old_termios->c_cflag & CBAUD && |
2303 | !(tty->termios.c_cflag & CBAUD)) { | 2303 | !(tty->termios.c_cflag & CBAUD)) { |
2304 | info->serial_signals &= ~(SerialSignal_RTS + SerialSignal_DTR); | 2304 | info->serial_signals &= ~(SerialSignal_RTS | SerialSignal_DTR); |
2305 | spin_lock_irqsave(&info->lock,flags); | 2305 | spin_lock_irqsave(&info->lock,flags); |
2306 | set_signals(info); | 2306 | set_signals(info); |
2307 | spin_unlock_irqrestore(&info->lock,flags); | 2307 | spin_unlock_irqrestore(&info->lock,flags); |
@@ -2464,9 +2464,9 @@ static void dtr_rts(struct tty_port *port, int onoff) | |||
2464 | 2464 | ||
2465 | spin_lock_irqsave(&info->lock,flags); | 2465 | spin_lock_irqsave(&info->lock,flags); |
2466 | if (onoff) | 2466 | if (onoff) |
2467 | info->serial_signals |= SerialSignal_RTS + SerialSignal_DTR; | 2467 | info->serial_signals |= SerialSignal_RTS | SerialSignal_DTR; |
2468 | else | 2468 | else |
2469 | info->serial_signals &= ~SerialSignal_RTS + SerialSignal_DTR; | 2469 | info->serial_signals &= ~(SerialSignal_RTS | SerialSignal_DTR); |
2470 | set_signals(info); | 2470 | set_signals(info); |
2471 | spin_unlock_irqrestore(&info->lock,flags); | 2471 | spin_unlock_irqrestore(&info->lock,flags); |
2472 | } | 2472 | } |
@@ -3575,8 +3575,8 @@ static void get_signals(MGSLPC_INFO *info) | |||
3575 | { | 3575 | { |
3576 | unsigned char status = 0; | 3576 | unsigned char status = 0; |
3577 | 3577 | ||
3578 | /* preserve DTR and RTS */ | 3578 | /* preserve RTS and DTR */ |
3579 | info->serial_signals &= SerialSignal_DTR + SerialSignal_RTS; | 3579 | info->serial_signals &= SerialSignal_RTS | SerialSignal_DTR; |
3580 | 3580 | ||
3581 | if (read_reg(info, CHB + VSTR) & BIT7) | 3581 | if (read_reg(info, CHB + VSTR) & BIT7) |
3582 | info->serial_signals |= SerialSignal_DCD; | 3582 | info->serial_signals |= SerialSignal_DCD; |
@@ -3590,7 +3590,7 @@ static void get_signals(MGSLPC_INFO *info) | |||
3590 | info->serial_signals |= SerialSignal_DSR; | 3590 | info->serial_signals |= SerialSignal_DSR; |
3591 | } | 3591 | } |
3592 | 3592 | ||
3593 | /* Set the state of DTR and RTS based on contents of | 3593 | /* Set the state of RTS and DTR based on contents of |
3594 | * serial_signals member of device extension. | 3594 | * serial_signals member of device extension. |
3595 | */ | 3595 | */ |
3596 | static void set_signals(MGSLPC_INFO *info) | 3596 | static void set_signals(MGSLPC_INFO *info) |
@@ -4009,8 +4009,8 @@ static int hdlcdev_open(struct net_device *dev) | |||
4009 | spin_unlock_irqrestore(&info->netlock, flags); | 4009 | spin_unlock_irqrestore(&info->netlock, flags); |
4010 | return rc; | 4010 | return rc; |
4011 | } | 4011 | } |
4012 | /* assert DTR and RTS, apply hardware settings */ | 4012 | /* assert RTS and DTR, apply hardware settings */ |
4013 | info->serial_signals |= SerialSignal_RTS + SerialSignal_DTR; | 4013 | info->serial_signals |= SerialSignal_RTS | SerialSignal_DTR; |
4014 | mgslpc_program_hw(info, tty); | 4014 | mgslpc_program_hw(info, tty); |
4015 | tty_kref_put(tty); | 4015 | tty_kref_put(tty); |
4016 | 4016 | ||