|
|
@@ -443,11 +443,18 @@ static int __rfcomm_dlc_close(struct rfcomm_dlc *d, int err)
|
|
|
switch (d->state) {
|
|
|
case BT_CONNECT:
|
|
|
case BT_CONFIG:
|
|
|
+ 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();
|
|
|
- break;
|
|
|
+ return 0;
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (d->state) {
|
|
|
+ case BT_CONNECT:
|
|
|
+ case BT_CONFIG:
|
|
|
/* Fall through */
|
|
|
|
|
|
case BT_CONNECTED:
|
|
|
@@ -461,15 +468,6 @@ 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();
|
|
|
- break;
|
|
|
- }
|
|
|
- /* Fall through */
|
|
|
-
|
|
|
default:
|
|
|
rfcomm_dlc_clear_timer(d);
|
|
|
|