tty/n_gsm: fix a bug in gsm_dlci_data_output (adaption = 2 case)
commitf37ac5a144027cddfcf1dfab30eb7c2ba765f5ca
authorMikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Fri, 23 Sep 2011 15:22:55 +0000 (23 19:22 +0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 26 Sep 2011 23:39:23 +0000 (26 16:39 -0700)
tree9274e84d221362c5acd93dc33cf9208246c0e15b
parent7808a4c4853fa0203085cf2217e01823d9f0c70c
tty/n_gsm: fix a bug in gsm_dlci_data_output (adaption = 2 case)

in adaption=2 case we should put 1 or 2 byte with modem status bits
at the beginning of a buffer pointed by "dp". n_gsm use 1 byte case,
so it allocate a buffer of len + 1 size. As result we should:
  * put 1 byte of modem status bits
  * increase data pointer
  * put "len" bytes of data
but actually we have:
  * increase first byte with the value of modem status bits
  * decrease "len"
  * put orig_len - 1 bytes of data starting from the buffer beggining
This is evidently wrong.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/n_gsm.c