From: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>
Subject: Re: [PATCH v2] Bluetooth: Use hci_conn data to handle failed LE Connection Complete
Date: Thu, 17 May 2012 10:05:17 +0200 [thread overview]
Message-ID: <4FB4B13D.1010302@tieto.com> (raw)
In-Reply-To: <1337204910.5970.271.camel@aeonflux>
Hi Marcel,
On 16.05.2012 23:48, Marcel Holtmann wrote:
>>>> hci_dev_lock(hdev);
>>>>
>>>> + if (ev->status) {
>>>> + conn = hci_conn_hash_lookup_state(hdev, LE_LINK, BT_CONNECT);
>>>> + if (!conn)
>>>> + goto unlock;
>>>> +
>>>> + mgmt_connect_failed(hdev,&conn->dst, conn->type,
>>>> + conn->dst_type, ev->status);
>>>> + hci_proto_connect_cfm(conn, ev->status);
>>>> + conn->state = BT_CLOSED;
>>>> + hci_conn_del(conn);
>>>> + goto unlock;
>>>> + }
>>>> +
>>>> conn = hci_conn_hash_lookup_ba(hdev, LE_LINK,&ev->bdaddr);
>>>> if (!conn) {
>>>> conn = hci_conn_add(hdev, LE_LINK,&ev->bdaddr);
>>>
>>> this change is wrong. We are now treating every single adapter as being
>>> broken. That is not acceptable.
>>
>> Why do you think these adapters are broken? As I explained in cover
>> letter for v1, spec does not require peer address to be provided in
>> Connection Complete which is reasonable since we can only have one
>> pending connection request. Also as Claudio and Andre noticed such
>> behaviour could be to simplify whitelist implementation - in case of
>> connection request using whitelist it does not make sense to include
>> specific peer address in event.
>
> what has whitelist behavior to do with this event in the failure case?
Just a sidenote on why some vendors may want to omit BD_ADDR and it does
not make adapter broken. Not directly related to this scenario.
>>> We should only add a tweak if the BD_ADDR parameter is BDADDR_ANY and
>>> not as a general rule. In addition if we do this, we need to print a
>>> warning to dmesg to make this known.
>>
>> Perhaps we can just add warning in case BD_ADDR is not BDADDR_ANY and
>> we cannot find hci_conn for it - in such case most probably something
>> went wrong.
>
> What are the adapters from Broadcom, CSR, TI and ST are returning in a
> failure case? Are they all omitting the BD_ADDR value?
No, I noticed this on BCM and based on previous comments it seems that
this is what BCM and ST(E) are doing while CSR and TI return BD_ADDR.
Except that previously I was using ST-E chip which did return BD_ADDR so
this is not even consistent per manufacturer.
As said before, omitted BD_ADDR seems to be fine from spec perspective
so we should not require it to be present. Since we can have only one LE
hci_conn in BT_CONNECT state it's reasonable to use it here. This is
already in patch.
What could be indeed added to this patch is warning message in case
BD_ADDR is not BDADDR_ANY and it does not match one stored in hci_conn
(either adapter returns random BD_ADDR which is weird or something went
wrong).
BR,
Andrzej
next prev parent reply other threads:[~2012-05-17 8:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-16 20:55 [PATCH v2] Bluetooth: Use hci_conn data to handle failed LE Connection Complete Andrzej Kaczmarek
2012-05-16 21:05 ` Marcel Holtmann
2012-05-16 21:44 ` Andrzej Kaczmarek
2012-05-16 21:48 ` Marcel Holtmann
2012-05-17 8:05 ` Andrzej Kaczmarek [this message]
2012-05-21 22:30 ` Andre Guedes
2012-05-25 6:55 ` Marcel Holtmann
2012-05-30 13:43 ` Andrzej Kaczmarek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FB4B13D.1010302@tieto.com \
--to=andrzej.kaczmarek@tieto.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.