2010-02-17 19:17:27

by Liejun Tao

[permalink] [raw]
Subject: What's the idea of security_cfm is called for both hci_proto_auth_cfm and hci_proto_encrypt_cfm?

Hi Marcel,
Beside the l2cap issue with Blackberry 8900, I meet another l2cap
connection failure issue when testing
PTS AVRCP_TC_TG_PTT_BV_01_I.

For 8900, the sequence is:
l2cap_do_start(): send L2CAP_INFO_REQ
security_cfm(): send L2CAP_CONN_REQ
l2cap_information_rsp(): call l2cap_do_start(), send L2CAP_CONN_REQ again

For PTS AVRCP_TC_TG_PTT_BV_01_I, the sequence is:
l2cap_do_start(): send L2CAP_CONN_REQ
security_cfm():send L2CAP_CONN_REQ again
l2cap_conn_rsp(): receive L2CAP_CR_PEND
l2cap_conn_rsp(): receive L2CAP_CR_NO_MEM

In both cases, security_cfm() is called from hci_proto_encrypt_cfm(),
and interrupt the normal sequence of l2cap connection.

security_cfm() is also called in hci_proto_auth_cfm. I feel auth_cfm
and encryption_cfm are for different events, why they call the same
function?

What's your mind to avoid 2 connection request?

Aside, should we set a state bit after send l2CAP_CONN_REQ?

Attach a kernel debug message when testing AVRCP_TC_TG_PTT_BV_01_I,
we can see 2 CONN_REQ at line 2065 & 2130.


Attachments:
dmesg_connect_request_sent_twice.txt (132.86 kB)