Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753966Ab0BAWAx (ORCPT ); Mon, 1 Feb 2010 17:00:53 -0500 Received: from mail-ew0-f228.google.com ([209.85.219.228]:33898 "EHLO mail-ew0-f228.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753283Ab0BAWAv convert rfc822-to-8bit (ORCPT ); Mon, 1 Feb 2010 17:00:51 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=pDGJU9zg8xDtsrclMxQWYj6EhnSLD0vbh3DjtxSYD8FcOhZyRLQDSVnb/YCmk/7GDm WgBKdXlbFjuPpY4ZQhIlAvVMAQNPnxkz4UJXRKNlWMknyZ7NadmgfDx28nX82yDpnH1X wD4QxHriJFa2tXdH161LtGH8gvC5jp2J2bjfY= MIME-Version: 1.0 In-Reply-To: <1265051657.31341.56.camel@localhost.localdomain> References: <1264986406.31341.5.camel@localhost.localdomain> <4B6711E2.6010409@xenontk.org> <1265051657.31341.56.camel@localhost.localdomain> Date: Mon, 1 Feb 2010 14:00:46 -0800 Message-ID: <2d5a2c101002011400o53a69f5ap3757ecba41199499@mail.gmail.com> Subject: Re: [Bug #15127] Bluetooth: sleeping function called from invalid context From: Luiz Augusto von Dentz To: Marcel Holtmann Cc: davidjon@xenontk.org, "Rafael J. Wysocki" , Linux Kernel Mailing List , Kernel Testers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4061 Lines: 99 Hi, On Mon, Feb 1, 2010 at 11:14 AM, Marcel Holtmann wrote: > Hi David, > >> >> This message has been generated automatically as a part of a report >> >> of regressions introduced between 2.6.31 and 2.6.32. >> >> >> >> The following bug entry is on the current list of known regressions >> >> introduced between 2.6.31 and 2.6.32. ?Please verify if it still should >> >> be listed and let me know (either way). >> >> >> >> >> >> Bug-Entry ?: http://bugzilla.kernel.org/show_bug.cgi?id=15127 >> >> Subject ? ? ? ? ? ?: Bluetooth: sleeping function called from invalid context >> >> Submitter ?: David John >> >> Date ? ? ? ? ? ? ? : 2010-01-12 9:19 (20 days old) >> >> First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9e726b17422bade75fba94e625cd35fd1353e682 >> >> References : http://marc.info/?l=linux-kernel&m=126328727021949&w=4 >> > >> > you have an outdated email from Luiz and I change it to the right one >> > now. >> > >> > I looked with him at the patch and I think this will fix it: >> > >> > diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c >> > index fc5ee32..2b50637 100644 >> > --- a/net/bluetooth/rfcomm/core.c >> > +++ b/net/bluetooth/rfcomm/core.c >> > @@ -252,7 +252,6 @@ static void rfcomm_session_timeout(unsigned long >> > arg) >> > ? ? BT_DBG("session %p state %ld", s, s->state); >> > >> > ? ? set_bit(RFCOMM_TIMED_OUT, &s->flags); >> > - ? rfcomm_session_put(s); >> > ? ? rfcomm_schedule(RFCOMM_SCHED_TIMEO); >> > ?} >> > >> > @@ -1920,6 +1919,7 @@ static inline void rfcomm_process_sessions(void) >> > ? ? ? ? ? ? if (test_and_clear_bit(RFCOMM_TIMED_OUT, &s->flags)) { >> > ? ? ? ? ? ? ? ? ? ? s->state = BT_DISCONN; >> > ? ? ? ? ? ? ? ? ? ? rfcomm_send_disc(s, 0); >> > + ? ? ? ? ? ? ? ? ? rfcomm_session_put(s); >> > ? ? ? ? ? ? ? ? ? ? continue; >> > ? ? ? ? ? ? } >> > >> > We need some extra testing on this with the actual hardware we did the >> > patch for. So this will take at least a few days before we get our hands >> > on it. >> >> FWIW, your patch fixes the issue. > > nice. So I can add a tested-by line to the final patch? > > Just our of curiosity, which hardware did you test this with. We only > know about one headset that should cause this issue. > Just in case, here is the hcidump of the Nokia HS-12W, the one that has problem when we connection authorization is denied: > ACL data: handle 11 flags 0x02 dlen 8 L2CAP(d): cid 0x0041 len 4 [psm 3] RFCOMM(s): SABM: cr 1 dlci 26 pf 1 ilen 0 fcs 0xe7 < ACL data: handle 11 flags 0x02 dlen 12 L2CAP(s): Disconn req: dcid 0x0042 scid 0x0040 < ACL data: handle 11 flags 0x02 dlen 8 L2CAP(d): cid 0x0044 len 4 [psm 3] RFCOMM(s): DM: cr 1 dlci 26 pf 1 ilen 0 fcs 0xcd > HCI Event: Number of Completed Packets (0x13) plen 5 > ACL data: handle 11 flags 0x02 dlen 12 L2CAP(s): Disconn rsp: dcid 0x0042 scid 0x0040 < ACL data: handle 11 flags 0x02 dlen 8 L2CAP(d): cid 0x0044 len 4 [psm 3] RFCOMM(s): DISC: cr 0 dlci 0 pf 1 ilen 0 fcs 0x9c > ACL data: handle 11 flags 0x02 dlen 8 L2CAP(d): cid 0x0041 len 4 [psm 3] RFCOMM(s): UA: cr 0 dlci 0 pf 1 ilen 0 fcs 0xb6 < ACL data: handle 11 flags 0x02 dlen 12 L2CAP(s): Disconn req: dcid 0x0044 scid 0x0041 > HCI Event: Number of Completed Packets (0x13) plen 5 > ACL data: handle 11 flags 0x02 dlen 12 L2CAP(s): Disconn rsp: dcid 0x0044 scid 0x0041 < HCI Command: Disconnect (0x01|0x0006) plen 3 > HCI Event: Command Status (0x0f) plen 4 > HCI Event: Disconn Complete (0x05) plen 4 So this means the patch works. DISC 0 is send from our side (due to the session timeout) when normally it should be other end that disconnects right away when we respond with DM. -- Luiz Augusto von Dentz Engenheiro de Computa??o -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/