diff options
author | John W. Linville <linville@tuxdriver.com> | 2011-11-04 14:46:34 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-04 14:46:34 -0400 |
commit | 22097fd297c85ec6c2e700d506f231f7cae442e1 (patch) | |
tree | 4a16a6821c5dc82a512b56ade6fcf64e0935d0aa /net/bluetooth/rfcomm/core.c | |
parent | 1a67a573b8d9f02211f36fbab50f6265dc49384a (diff) | |
parent | 54d5026e7c173edae8a27c293c286f1783d21ae8 (diff) | |
download | talos-op-linux-22097fd297c85ec6c2e700d506f231f7cae442e1.tar.gz talos-op-linux-22097fd297c85ec6c2e700d506f231f7cae442e1.zip |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
Diffstat (limited to 'net/bluetooth/rfcomm/core.c')
-rw-r--r-- | net/bluetooth/rfcomm/core.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index 38b618c96de6..4e32e18211f9 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1802,6 +1802,11 @@ static inline void rfcomm_process_dlcs(struct rfcomm_session *s) continue; } + if (test_bit(RFCOMM_ENC_DROP, &d->flags)) { + __rfcomm_dlc_close(d, ECONNREFUSED); + continue; + } + if (test_and_clear_bit(RFCOMM_AUTH_ACCEPT, &d->flags)) { rfcomm_dlc_clear_timer(d); if (d->out) { @@ -2077,7 +2082,7 @@ static void rfcomm_security_cfm(struct hci_conn *conn, u8 status, u8 encrypt) if (test_and_clear_bit(RFCOMM_SEC_PENDING, &d->flags)) { rfcomm_dlc_clear_timer(d); if (status || encrypt == 0x00) { - __rfcomm_dlc_close(d, ECONNREFUSED); + set_bit(RFCOMM_ENC_DROP, &d->flags); continue; } } @@ -2088,7 +2093,7 @@ static void rfcomm_security_cfm(struct hci_conn *conn, u8 status, u8 encrypt) rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); continue; } else if (d->sec_level == BT_SECURITY_HIGH) { - __rfcomm_dlc_close(d, ECONNREFUSED); + set_bit(RFCOMM_ENC_DROP, &d->flags); continue; } } |