* double Connect req: psm 1 scid 0x0040 ? @ 2010-02-02 20:33 Ed Tsang 2010-02-02 21:41 ` Liejun Tao 2010-02-03 0:28 ` Marcel Holtmann 0 siblings, 2 replies; 9+ messages in thread From: Ed Tsang @ 2010-02-02 20:33 UTC (permalink / raw) To: Bluettooth Linux Hi all, I was pulling my hair on opp a file to a Blackberry. Blackerry is set to "receive using bluetooth". 1. If the Blackberry was not paired before. It ran through ok: enter the pin, accept connection, accept the file. 2. If the Blackberry was paired and in it's device properties, I change the encryption off for my box. It ran through ok, accept connection, accept the file... 3. If the Blackberry was paired and I leave the device properties unchange (default is encryption on). It will fail, not seeing any prompt to accept the connection. In hcidump I seem to see a problem in #3. After the Encrypt Change there seem to be 2 >con. req. psm 1 scid 0x0040 Any suggestion on how to trace it down/work around this? ............. > HCI Event: Read Remote Supported Features (0x0b) plen 11 < ACL data: handle 42 flags 0x02 dlen 10 L2CAP(s): Info req: type 2 > HCI Event: Number of Completed Packets (0x13) plen 5 > HCI Event: Encrypt Change (0x08) plen 4 < ACL data: handle 42 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 1 scid 0x0040 > ACL data: handle 42 flags 0x02 dlen 12 L2CAP(s): Info rsp: type 2 result 1 Not supported < ACL data: handle 42 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 1 scid 0x0040 > HCI Event: Number of Completed Packets (0x13) plen 5 > HCI Event: Number of Completed Packets (0x13) plen 5 > ACL data: handle 42 flags 0x02 dlen 16 L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0 Connection successful < ACL data: handle 42 flags 0x02 dlen 12 L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 0 > ACL data: handle 42 flags 0x02 dlen 16 L2CAP(s): Connect rsp: dcid 0x0041 scid 0x0040 result 4 status 0 Connection refused - no resources available ................. Regards, Ed __________________________________________________________________ Get a sneak peak at messages with a handy reading pane with All new Yahoo! Mail: http://ca.promos.yahoo.com/newmail/overview2/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-02-02 20:33 double Connect req: psm 1 scid 0x0040 ? Ed Tsang @ 2010-02-02 21:41 ` Liejun Tao 2010-02-03 0:28 ` Marcel Holtmann 1 sibling, 0 replies; 9+ messages in thread From: Liejun Tao @ 2010-02-02 21:41 UTC (permalink / raw) To: Ed Tsang; +Cc: Bluettooth Linux Hi, On Tue, Feb 2, 2010 at 2:33 PM, Ed Tsang <netdesign_98@yahoo.com> wrote: > > Hi all, > I was pulling my hair on opp a file to a Blackberry. Blackerry is set to "receive using bluetooth". > 1. If the Blackberry was not paired before. It ran through ok: enter the pin, accept connection, accept the file. > 2. If the Blackberry was paired and in it's device properties, I change the encryption off for my box. It ran through ok, accept connection, accept the file... > 3. If the Blackberry was paired and I leave the device properties unchange (default is encryption on). It will fail, not seeing any prompt to accept the connection. > > In hcidump I seem to see a problem in #3. After the Encrypt Change there seem to be 2 >con. req. psm 1 scid 0x0040 > > Any suggestion on how to trace it down/work around this? > ............. > > > HCI Event: Read Remote > Supported Features (0x0b) plen 11 > < ACL data: handle 42 flags > 0x02 dlen 10 > L2CAP(s): Info req: type 2 > > HCI Event: Number of > Completed Packets (0x13) plen 5 > > HCI Event: Encrypt Change > (0x08) plen 4 > < ACL data: handle 42 flags > 0x02 dlen 12 > L2CAP(s): Connect req: psm 1 scid 0x0040 > > ACL data: handle 42 flags > 0x02 dlen 12 > L2CAP(s): Info rsp: type 2 result 1 > Not supported > < ACL data: handle 42 flags > 0x02 dlen 12 > L2CAP(s): Connect req: psm 1 scid 0x0040 > > HCI Event: Number of > Completed Packets (0x13) plen 5 > > HCI Event: Number of > Completed Packets (0x13) plen 5 > > ACL data: handle 42 flags > 0x02 dlen 16 > L2CAP(s): Connect rsp: dcid 0x0040 scid > 0x0040 result 0 status 0 > Connection successful > < ACL data: handle 42 flags > 0x02 dlen 12 > L2CAP(s): Config req: dcid 0x0040 flags > 0x00 clen 0 > > ACL data: handle 42 flags > 0x02 dlen 16 > L2CAP(s): Connect rsp: dcid 0x0041 scid > 0x0040 result 4 status 0 > Connection refused - no resources > available > ................. > Regards, Ed > > > > __________________________________________________________________ > Get a sneak peak at messages with a handy reading pane with All new Yahoo! Mail: http://ca.promos.yahoo.com/newmail/overview2/ > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html I'm trying to resolve this issue. Let me post the patch for review. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-02-02 20:33 double Connect req: psm 1 scid 0x0040 ? Ed Tsang 2010-02-02 21:41 ` Liejun Tao @ 2010-02-03 0:28 ` Marcel Holtmann 2010-02-03 14:54 ` Ed Tsang 1 sibling, 1 reply; 9+ messages in thread From: Marcel Holtmann @ 2010-02-03 0:28 UTC (permalink / raw) To: Ed Tsang; +Cc: Bluettooth Linux Hi Ed, > I was pulling my hair on opp a file to a Blackberry. Blackerry is set to "receive using bluetooth". > 1. If the Blackberry was not paired before. It ran through ok: enter the pin, accept connection, accept the file. > 2. If the Blackberry was paired and in it's device properties, I change the encryption off for my box. It ran through ok, accept connection, accept the file... > 3. If the Blackberry was paired and I leave the device properties unchange (default is encryption on). It will fail, not seeing any prompt to accept the connection. > > In hcidump I seem to see a problem in #3. After the Encrypt Change there seem to be 2 >con. req. psm 1 scid 0x0040 what kernel version is this? I think we fixed that already. Regards Marcel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-02-03 0:28 ` Marcel Holtmann @ 2010-02-03 14:54 ` Ed Tsang 2010-02-03 15:07 ` Marcel Holtmann 0 siblings, 1 reply; 9+ messages in thread From: Ed Tsang @ 2010-02-03 14:54 UTC (permalink / raw) To: Marcel Holtmann; +Cc: Bluettooth Linux Hi Marcel, >> In hcidump I seem to see a problem in #3. After the Encrypt Change there seem to be 2 >con. req. psm 1 scid 0x0040 >what kernel version is this? I think we fixed that already. It is a ubutunu distribution. 2.6.31-17-generic. Ed __________________________________________________________________ Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now http://ca.toolbar.yahoo.com. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-02-03 14:54 ` Ed Tsang @ 2010-02-03 15:07 ` Marcel Holtmann 2010-02-03 16:02 ` Ed Tsang 2010-06-16 10:21 ` Andrei Emeltchenko 0 siblings, 2 replies; 9+ messages in thread From: Marcel Holtmann @ 2010-02-03 15:07 UTC (permalink / raw) To: Ed Tsang; +Cc: Bluettooth Linux Hi Ed, > >> In hcidump I seem to see a problem in #3. After the Encrypt Change there seem to be 2 >con. req. psm 1 scid 0x0040 > > >what kernel version is this? I think we fixed that already. > It is a ubutunu distribution. 2.6.31-17-generic. can you test with a 2.6.33-rc6 vanilla kernel. I really thing this got fixed and you might see a side effect or bad patch here. Regards Marcel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-02-03 15:07 ` Marcel Holtmann @ 2010-02-03 16:02 ` Ed Tsang 2010-06-16 10:21 ` Andrei Emeltchenko 1 sibling, 0 replies; 9+ messages in thread From: Ed Tsang @ 2010-02-03 16:02 UTC (permalink / raw) To: Marcel Holtmann; +Cc: Bluettooth Linux Marcel,=0A=0A>> It is a ubutunu distribution. 2.6.31-17-generic.=0A>can you= test with a 2.6.33-rc6 vanilla kernel. I really thing this got=0A>fixed an= d you might see a side effect or bad patch here.=0A=0AI think you are absol= ute right. This look like the Bluetooth:L2CAP... patch that Liejun is worki= ng on.=0AI am just too new to linux, need to learn how to compile and insta= ll the kernel first.=0AIf it does not work out on 2.6.33, then I will come = back with more info.=0AIn the mean time: hcidump -X -V (hope a bit more in= fo to confirm the same issue).=0A------------------------------------------= ---------------------=0A> HCI Event: Connect Complete (0x03) plen 11=0A = status 0x00 handle 42 bdaddr 00:1C:CC:23:8F:68 type ACL encrypt 0x00=0A< HC= I Command: Read Remote Supported Features (0x01|0x001b) plen 2=0A handle= 42=0A> HCI Event: Command Status (0x0f) plen 4=0A Read Remote Supported= Features (0x01|0x001b) status 0x00 ncmd 0=0A> HCI Event: Page Scan Repetit= ion Mode Change (0x20) plen 7=0A bdaddr 00:1C:CC:23:8F:68 mode 1=0A> HCI= Event: Max Slots Change (0x1b) plen 3=0A handle 42 slots 5=0A> HCI Even= t: Command Status (0x0f) plen 4=0A Unknown (0x00|0x0000) status 0x00 ncm= d 1=0A> HCI Event: Read Remote Supported Features (0x0b) plen 11=0A stat= us 0x00 handle 42=0A Features: 0xbf 0xfe 0x8f 0xfe 0x98 0x19 0x00 0x80= =0A< ACL data: handle 42 flags 0x02 dlen 10=0A L2CAP(s): Info req: type = 2 (***)=0A> HCI Event: Encrypt Change (0x08) plen = 4 (***)=0A status 0x00 handle 42 encrypt 0x01=0A< ACL data: handle 4= 2 flags 0x02 dlen 12=0A L2CAP(s): Connect req: psm 1 scid 0x0040 (**= **)=0A> HCI Event: Number of Completed Packets (0x13) plen 5=0A handle 4= 2 packets 1=0A> HCI Event: Number of Completed Packets (0x13) plen 5=0A = handle 42 packets 1=0A> ACL data: handle 42 flags 0x02 dlen 12=0A L2CAP(= s): Info rsp: type 2 result 1=0A Not supported=0A< ACL data: handle 42= flags 0x02 dlen 12=0A L2CAP(s): Connect req: psm 1 scid 0x0040 (****)= =0A> ACL data: handle 42 flags 0x02 dlen 16=0A L2CAP(s): Connect rsp: dc= id 0x0040 scid 0x0040 result 0 status 0=0A Connection successful = (****)=0A< ACL data: handle 42 flags 0x02 dlen 12= =0A L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 0=0A> ACL data: ha= ndle 42 flags 0x02 dlen 16=0A L2CAP(s): Config req: dcid 0x0040 flags 0x= 00 clen 4=0A MTU 1024=0A< ACL data: handle 42 flags 0x02 dlen 18=0A = L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4=0A MTU 1= 024=0A> HCI Event: Number of Completed Packets (0x13) plen 5=0A handle 4= 2 packets 1=0A> HCI Event: Number of Completed Packets (0x13) plen 5=0A = handle 42 packets 1=0A> HCI Event: Number of Completed Packets (0x13) plen = 5=0A handle 42 packets 1=0A> ACL data: handle 42 flags 0x02 dlen 16=0A = L2CAP(s): Connect rsp: dcid 0x0041 scid 0x0040 result 4 status 0=0A = Connection refused - no resources available (***)=0A> ACL data: hand= le 42 flags 0x02 dlen 14=0A L2CAP(s): Config rsp: scid 0x0040 flags 0x00= result 0 clen 0=0A Success=0A< HCI Command: Remote Name Request (0x01= |0x0019) plen 10=0A bdaddr 00:1C:CC:23:8F:68 mode 2 clkoffset 0x0000=0A>= HCI Event: Command Status (0x0f) plen 4=0A Remote Name Request (0x01|0x= 0019) status 0x00 ncmd 1=0A> HCI Event: Remote Name Req Complete (0x07) ple= n 255=0A status 0x00 bdaddr 00:1C:CC:23:8F:68 name 'bb 8300e'=0A< HCI Co= mmand: Disconnect (0x01|0x0006) plen 3=0A handle 42 reason 0x13=0A Re= ason: Remote User Terminated Connection=0A---------------------------------= -----------------------------=0ARegards, Ed=0A=0A=0A _________________= _________________________________________________=0AThe new Internet Explor= er=AE 8 - Faster, safer, easier. Optimized for Yahoo! Get it Now for Free= ! at http://downloads.yahoo.com/ca/internetexplorer/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-02-03 15:07 ` Marcel Holtmann 2010-02-03 16:02 ` Ed Tsang @ 2010-06-16 10:21 ` Andrei Emeltchenko 2010-06-16 13:39 ` Ed Tsang 1 sibling, 1 reply; 9+ messages in thread From: Andrei Emeltchenko @ 2010-06-16 10:21 UTC (permalink / raw) To: Marcel Holtmann; +Cc: Ed Tsang, Bluettooth Linux Hi, On Wed, Feb 3, 2010 at 6:07 PM, Marcel Holtmann <marcel@holtmann.org> wrote= : >> >> In hcidump I seem to see a problem in #3. After the Encrypt Change th= ere seem to be 2 >con. req. psm 1 scid 0x0040 >> >> >what kernel version is this? I think we fixed that already. >> It is a ubutunu distribution. 2.6.31-17-generic. > > can you test with a 2.6.33-rc6 vanilla kernel. I really thing this got > fixed and you might see a side effect or bad patch here. Marcel we are seeing "double L2CAP connect also" when connecting to some smartphones using contran profile. What about following patch proposal: The idea is to use existing flag L2CAP_CONF_CONNECT_PEND to mark that L2CAP request has been sent. Currently it is durty hack, I will send modified patch later today. diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index fc81acb..27bff6e 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -394,6 +394,12 @@ static void l2cap_do_start(struct sock *sk) l2cap_pi(sk)->ident =3D l2cap_get_ident(conn); + if (l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND) { + printk(KERN_ERR "\n!!! %s: Connection pending !!!\n", __FUNCTION__); + return; + } + + l2cap_pi(sk)->conf_state |=3D L2CAP_CONF_CONNECT_PE= ND; l2cap_send_cmd(conn, l2cap_pi(sk)->ident, L2CAP_CONN_REQ, sizeof(req), &req); } @@ -448,6 +454,13 @@ static void l2cap_conn_start(struct l2cap_conn *conn) l2cap_pi(sk)->ident =3D l2cap_get_ident(con= n); + if (l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND) { + printk(KERN_ERR "\n!!! %s: Connection pending !!!\n", __FUNCTION__); + bh_unlock_sock(sk); + continue; + } + + l2cap_pi(sk)->conf_state |=3D L2CAP_CONF_CONNECT_PEND; l2cap_send_cmd(conn, l2cap_pi(sk)->ident, L2CAP_CONN_REQ, sizeof(req), &req); } @@ -3809,6 +3822,7 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) bh_lock_sock(sk); if (l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND) { + printk(KERN_ERR "\n!!! %s: Connection pending !!!\n", __FUNCTION__); bh_unlock_sock(sk); continue; } @@ -3828,6 +3842,7 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) l2cap_pi(sk)->ident =3D l2cap_get_ident(con= n); + l2cap_pi(sk)->conf_state |=3D L2CAP_CONF_CONNECT_PEND; l2cap_send_cmd(conn, l2cap_pi(sk)->ident, L2CAP_CONN_REQ, sizeof(req), &req); > > Regards > > Marcel > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth= " in > the body of a message to majordomo@vger.kernel.org > More majordomo info at =A0http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-06-16 10:21 ` Andrei Emeltchenko @ 2010-06-16 13:39 ` Ed Tsang 2010-06-16 14:14 ` Andrei Emeltchenko 0 siblings, 1 reply; 9+ messages in thread From: Ed Tsang @ 2010-06-16 13:39 UTC (permalink / raw) To: Andrei Emeltchenko, Marcel Holtmann; +Cc: Bluettooth Linux, liejuntao001 Anrel, what kernel version are you using? Previously it was happening with a Blackberry on 2.6.31-17. I was planning to dig into it, then I upgraded my ubuntu with (2.6.32-22) and the problem disappeared. I am guessing it might be a raising condition with certain phone during certain circumstance. I think Liejun Tao <liejuntao001@gmail.com> has investigate this one too. Cheers, Ed ----- Original Message ---- From: Andrei Emeltchenko <andrei.emeltchenko.news@gmail.com> To: Marcel Holtmann <marcel@holtmann.org> Cc: Ed Tsang <netdesign_98@yahoo.com>; Bluettooth Linux <linux-bluetooth@vger.kernel.org> Sent: Wed, June 16, 2010 6:21:55 AM Subject: Re: double Connect req: psm 1 scid 0x0040 ? Hi, On Wed, Feb 3, 2010 at 6:07 PM, Marcel Holtmann <marcel@holtmann.org> wrote: >> >> In hcidump I seem to see a problem in #3. After the Encrypt Change there seem to be 2 >con. req. psm 1 scid 0x0040 >> >> >what kernel version is this? I think we fixed that already. >> It is a ubutunu distribution. 2.6.31-17-generic. > > can you test with a 2.6.33-rc6 vanilla kernel. I really thing this got > fixed and you might see a side effect or bad patch here. Marcel we are seeing "double L2CAP connect also" when connecting to some smartphones using contran profile. What about following patch proposal: The idea is to use existing flag L2CAP_CONF_CONNECT_PEND to mark that L2CAP request has been sent. Currently it is durty hack, I will send modified patch later today. diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index fc81acb..27bff6e 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -394,6 +394,12 @@ static void l2cap_do_start(struct sock *sk) l2cap_pi(sk)->ident = l2cap_get_ident(conn); + if (l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND) { + printk(KERN_ERR "\n!!! %s: Connection pending !!!\n", __FUNCTION__); + return; + } + + l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND; l2cap_send_cmd(conn, l2cap_pi(sk)->ident, L2CAP_CONN_REQ, sizeof(req), &req); } @@ -448,6 +454,13 @@ static void l2cap_conn_start(struct l2cap_conn *conn) l2cap_pi(sk)->ident = l2cap_get_ident(conn); + if (l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND) { + printk(KERN_ERR "\n!!! %s: Connection pending !!!\n", __FUNCTION__); + bh_unlock_sock(sk); + continue; + } + + l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND; l2cap_send_cmd(conn, l2cap_pi(sk)->ident, L2CAP_CONN_REQ, sizeof(req), &req); } @@ -3809,6 +3822,7 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) bh_lock_sock(sk); if (l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND) { + printk(KERN_ERR "\n!!! %s: Connection pending !!!\n", __FUNCTION__); bh_unlock_sock(sk); continue; } @@ -3828,6 +3842,7 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) l2cap_pi(sk)->ident = l2cap_get_ident(conn); + l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND; l2cap_send_cmd(conn, l2cap_pi(sk)->ident, L2CAP_CONN_REQ, sizeof(req), &req); > > Regards > > Marcel > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: double Connect req: psm 1 scid 0x0040 ? 2010-06-16 13:39 ` Ed Tsang @ 2010-06-16 14:14 ` Andrei Emeltchenko 0 siblings, 0 replies; 9+ messages in thread From: Andrei Emeltchenko @ 2010-06-16 14:14 UTC (permalink / raw) To: Ed Tsang; +Cc: Marcel Holtmann, Bluettooth Linux, liejuntao001 On Wed, Jun 16, 2010 at 4:39 PM, Ed Tsang <netdesign_98@yahoo.com> wrote: > Anrel, =A0what kernel version are you using? > Previously it was happening with a Blackberry on 2.6.31-17. I was plannin= g to dig into it, then I upgraded my ubuntu with (2.6.32-22) and the proble= m disappeared. I am guessing it might be a raising condition with certain p= hone during certain circumstance. I think Liejun Tao <liejuntao001@gmail.co= m> has investigate this one too. I guess that new kernel have different timing. This condition is not easy to get as several packets have milliseconds between each other ... We are using kernel 2.6.32-xx and it is a bit different since several patches which fixes kernel crashes are not yet in bluez ... Regards, Andrei Emeltchenko MeeGo Devices > > Cheers, > Ed > > > > ----- Original Message ---- > From: Andrei Emeltchenko <andrei.emeltchenko.news@gmail.com> > To: Marcel Holtmann <marcel@holtmann.org> > Cc: Ed Tsang <netdesign_98@yahoo.com>; Bluettooth Linux <linux-bluetooth@= vger.kernel.org> > Sent: Wed, June 16, 2010 6:21:55 AM > Subject: Re: double Connect req: psm 1 scid 0x0040 ? > > Hi, > > On Wed, Feb 3, 2010 at 6:07 PM, Marcel Holtmann <marcel@holtmann.org> wro= te: >>> >> In hcidump I seem to see a problem in #3. After the Encrypt Change t= here seem to be 2 >con. req. psm 1 scid 0x0040 >>> >>> >what kernel version is this? I think we fixed that already. >>> It is a ubutunu distribution. 2.6.31-17-generic. >> >> can you test with a 2.6.33-rc6 vanilla kernel. I really thing this got >> fixed and you might see a side effect or bad patch here. > > Marcel we are seeing "double L2CAP connect also" when connecting to > some smartphones using contran profile. What about following patch > proposal: > > The idea is to use existing flag L2CAP_CONF_CONNECT_PEND to mark that > L2CAP request has been sent. > > Currently it is durty hack, I will send modified patch later today. > > diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c > index fc81acb..27bff6e 100644 > --- a/net/bluetooth/l2cap.c > +++ b/net/bluetooth/l2cap.c > @@ -394,6 +394,12 @@ static void l2cap_do_start(struct sock *sk) > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0l2cap_pi(sk)->ident =3D l2= cap_get_ident(conn); > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (l2cap_pi(sk)->conf_stat= e & > L2CAP_CONF_CONNECT_PEND) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 printk(KERN= _ERR "\n!!! %s: Connection > pending !!!\n", __FUNCTION__); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 l2cap_pi(sk)->conf_state |= =3D L2CAP_CONF_CONNECT_PEND; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0l2cap_send_cmd(conn, l2cap= _pi(sk)->ident, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0L2CAP_CONN_REQ, sizeof(req), &req); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} > @@ -448,6 +454,13 @@ static void l2cap_conn_start(struct l2cap_conn *conn= ) > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0l2cap_pi(s= k)->ident =3D l2cap_get_ident(conn); > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (l2cap_p= i(sk)->conf_state & > L2CAP_CONF_CONNECT_PEND) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 printk(KERN_ERR "\n!!! %s: > Connection pending !!!\n", __FUNCTION__); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 bh_unlock_sock(sk); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 continue; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 l2cap_pi(sk= )->conf_state |=3D > L2CAP_CONF_CONNECT_PEND; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0l2cap_send= _cmd(conn, l2cap_pi(sk)->ident, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0L2CAP_CONN_REQ, sizeof(req), &req); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} > @@ -3809,6 +3822,7 @@ static int l2cap_security_cfm(struct hci_conn > *hcon, u8 status, u8 encrypt) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0bh_lock_sock(sk); > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (l2cap_pi(sk)->conf_state & L2CAP_CONF_= CONNECT_PEND) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 printk(KERN_ERR "\n!!! %s: = Connection pending > !!!\n", __FUNCTION__); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0bh_unlock_sock(sk); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} > @@ -3828,6 +3842,7 @@ static int l2cap_security_cfm(struct hci_conn > *hcon, u8 status, u8 encrypt) > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0l2cap_pi(s= k)->ident =3D l2cap_get_ident(conn); > > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 l2cap_pi(sk= )->conf_state |=3D > L2CAP_CONF_CONNECT_PEND; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0l2cap_send= _cmd(conn, l2cap_pi(sk)->ident, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0L2CAP_CONN_REQ, sizeof(req), &req); > > > >> >> Regards >> >> Marcel >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-bluetoot= h" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at =A0http://vger.kernel.org/majordomo-info.html >> > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-06-16 14:14 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-02-02 20:33 double Connect req: psm 1 scid 0x0040 ? Ed Tsang 2010-02-02 21:41 ` Liejun Tao 2010-02-03 0:28 ` Marcel Holtmann 2010-02-03 14:54 ` Ed Tsang 2010-02-03 15:07 ` Marcel Holtmann 2010-02-03 16:02 ` Ed Tsang 2010-06-16 10:21 ` Andrei Emeltchenko 2010-06-16 13:39 ` Ed Tsang 2010-06-16 14:14 ` Andrei Emeltchenko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox