From 6ebaac14577df5784bc273fac91f43b922d9976b Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 5 May 2007 00:36:13 +0200 Subject: [PATCH] --- yaml --- r: 54419 b: refs/heads/master c: 9cf5b0ea3a7f1432c61029f7aaf4b8b338628884 h: refs/heads/master i: 54417: e06cc9434c4f2d1c39f09d6db11b2d86c38cf81b 54415: 9f42cee4dde233edba2e1d8b088e7f3a146b8e6f v: v3 --- [refs] | 2 +- trunk/net/bluetooth/rfcomm/core.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5743db744cd6..a30255c814dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 77f2a45fa1ba33147fd6cc8ae546188504a822cd +refs/heads/master: 9cf5b0ea3a7f1432c61029f7aaf4b8b338628884 diff --git a/trunk/net/bluetooth/rfcomm/core.c b/trunk/net/bluetooth/rfcomm/core.c index 71a72fcb2b54..52e04df323ea 100644 --- a/trunk/net/bluetooth/rfcomm/core.c +++ b/trunk/net/bluetooth/rfcomm/core.c @@ -1058,6 +1058,12 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci) case BT_DISCONN: d->state = BT_CLOSED; __rfcomm_dlc_close(d, 0); + + if (list_empty(&s->dlcs)) { + s->state = BT_DISCONN; + rfcomm_send_disc(s, 0); + } + break; } } else { @@ -1067,6 +1073,10 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci) s->state = BT_CONNECTED; rfcomm_process_connect(s); break; + + case BT_DISCONN: + rfcomm_session_put(s); + break; } } return 0;