From: 黄涛 Date: Sat, 30 Jul 2011 14:26:33 +0000 (+0800) Subject: Revert "Revert "Bluetooth: Change RFCOMM to use BT_CONNECT2 for BT_DEFER_SETUP"" X-Git-Tag: firefly_0821_release~9992 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2b0abd67bba35ee32571679188bfa1f2dd10bed2;p=firefly-linux-kernel-4.4.55.git Revert "Revert "Bluetooth: Change RFCOMM to use BT_CONNECT2 for BT_DEFER_SETUP"" This reverts commit e7e66e1a05730d61f5e009208de6848a8de717f7. --- diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index 483b8ab62f06..77d76e6d999f 100755 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -447,6 +447,7 @@ static int __rfcomm_dlc_close(struct rfcomm_dlc *d, int err) break; case BT_OPEN: + case BT_CONNECT2: if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { set_bit(RFCOMM_AUTH_REJECT, &d->flags); rfcomm_schedule(RFCOMM_SCHED_AUTH); @@ -1210,6 +1211,11 @@ static void rfcomm_check_accept(struct rfcomm_dlc *d) if (d->defer_setup) { set_bit(RFCOMM_DEFER_SETUP, &d->flags); rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); + + rfcomm_dlc_lock(d); + d->state = BT_CONNECT2; + d->state_change(d, 0); + rfcomm_dlc_unlock(d); } else rfcomm_dlc_accept(d); } else { @@ -1751,6 +1757,11 @@ static inline void rfcomm_process_dlcs(struct rfcomm_session *s) if (d->defer_setup) { set_bit(RFCOMM_DEFER_SETUP, &d->flags); rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); + + rfcomm_dlc_lock(d); + d->state = BT_CONNECT2; + d->state_change(d, 0); + rfcomm_dlc_unlock(d); } else rfcomm_dlc_accept(d); }