summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikola Diklic-Perin <diklic.perin.nikola@gmail.com>2011-09-23 10:59:43 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-27 01:38:44 +0200
commitcf16807b61d15e42b20407c954a01a3774520ea7 (patch)
tree93a60da8ed0cc30094e381ce6dd954c568fdc741
parentdrivers/tty: don't use the byte channel handle as a parameter in ehv_bytechan.c (diff)
downloadlinux-cf16807b61d15e42b20407c954a01a3774520ea7.tar.xz
linux-cf16807b61d15e42b20407c954a01a3774520ea7.zip
tty/n_gsm: fix bug in tiocmset
Clear bitmask was not inverted before masking modem_tx. Calling ioctl(fd, TIOCMBIC, TIOCM_RTS) results in: [ 197.430000] pre_modem_tx: 0x00000006 [ 197.430000] clear: 0x00000004 [ 197.430000] set: 0x00000000 [ 197.440000] post_modem_tx: 0x00000004 which is wrong. Signed-off-by: Nikola Diklic-Perin <diklic.perin.nikola@gmail.com> Acked-by: Alan Cox <alan@linx.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/tty/n_gsm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 8d7766bfef87..da3b31a98654 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -2989,7 +2989,7 @@ static int gsmtty_tiocmset(struct tty_struct *tty,
struct gsm_dlci *dlci = tty->driver_data;
unsigned int modem_tx = dlci->modem_tx;
- modem_tx &= clear;
+ modem_tx &= ~clear;
modem_tx |= set;
if (modem_tx != dlci->modem_tx) {