[Bluetooth] Move pending packets from RFCOMM socket to TTY
authorMarcel Holtmann <marcel@holtmann.org>
Mon, 14 Jul 2008 18:13:52 +0000 (20:13 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 14 Jul 2008 18:13:52 +0000 (20:13 +0200)
commita0c22f226502be6eab37a1d9bf6fb0fadf551376
treefe0237624038290fc0d84ce5ee97a65c49b56818
parent8b6b3da765af9600b5edd8e3e84a20523e975884
[Bluetooth] Move pending packets from RFCOMM socket to TTY

When an incoming RFCOMM socket connection gets converted into a TTY,
it can happen that packets are lost. This mainly happens with the
Handsfree profile where the remote side starts sending data right
away. The problem is that these packets are in the socket receive
queue. So when creating the TTY make sure to copy all pending packets
from the socket receive queue to a private queue inside the TTY.

To make this actually work, the flow control on the newly created TTY
will be disabled and only enabled again when the TTY is opened by an
application. And right before that, the pending packets will be put
into the TTY flip buffer.

Signed-off-by: Denis Kenzior <denis.kenzior@trolltech.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/rfcomm/core.c
net/bluetooth/rfcomm/tty.c