summaryrefslogtreecommitdiff
path: root/net/bluetooth
diff options
context:
space:
mode:
authorJaikumar Ganesh <jaikumar@google.com>2009-02-02 18:03:57 -0800
committerMarcel Holtmann <marcel@holtmann.org>2009-02-27 06:14:35 +0100
commit6e1031a40029492c10509e8c3dcac9b611438ccb (patch)
tree534b3b4c4b1495ae0f948453bf54e0d71e1216f5 /net/bluetooth
parent34a55eda483e8177c9044f93fd2c9107f02bf1c7 (diff)
downloadlinux-stable-6e1031a40029492c10509e8c3dcac9b611438ccb.tar.gz
linux-stable-6e1031a40029492c10509e8c3dcac9b611438ccb.tar.bz2
linux-stable-6e1031a40029492c10509e8c3dcac9b611438ccb.zip
Bluetooth: When encryption is dropped, do not send RFCOMM packets
During a role change with pre-Bluetooth 2.1 devices, the remote side drops the encryption of the RFCOMM connection. We allow a grace period for the encryption to be re-established, before dropping the connection. During this grace period, the RFCOMM_SEC_PENDING flag is set. Check this flag before sending RFCOMM packets. Signed-off-by: Jaikumar Ganesh <jaikumar@google.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/rfcomm/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index ad0e25a21832..3717c25ba33a 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -1749,6 +1749,9 @@ static inline void rfcomm_process_dlcs(struct rfcomm_session *s)
continue;
}
+ if (test_bit(RFCOMM_SEC_PENDING, &d->flags))
+ continue;
+
if (test_bit(RFCOMM_TX_THROTTLED, &s->flags))
continue;