From: Gustavo Padovan <gustavo@padovan.org>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: Johan Hedberg <johan.hedberg@gmail.com>,
linux-bluetooth@vger.kernel.org, pavel@ucw.cz
Subject: Re: [PATCH] Bluetooth: Fix conditions for HCI_Delete_Stored_Link_Key
Date: Thu, 13 Jun 2013 11:42:16 +0100 [thread overview]
Message-ID: <20130613104216.GA17870@joana> (raw)
In-Reply-To: <5B6FB8F0-A31D-4C86-B15A-3FA04CB237FF@holtmann.org>
Hi Marcel,
* Marcel Holtmann <marcel@holtmann.org> [2013-06-13 12:34:09 +0200]:
> Hi Johan,
>
> > Even though the HCI_Delete_Stored_Link_Key command is mandatory for 1.1
> > and later controllers some controllers do not seem to support it
> > properly as was witnessed by one Broadcom based controller:
> >
> > < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7
> > bdaddr 00:00:00:00:00:00 all 1
> >> HCI Event: Command Complete (0x0e) plen 4
> > Delete Stored Link Key (0x03|0x0012) ncmd 1
> > status 0x11 deleted 0
> > Error: Unsupported Feature or Parameter Value
> >
> > Luckily this same controller also doesn't list the command in its
> > supported commands bit mask (counting from 0 bit 7 of octet 6):
> >
> > < HCI Command: Read Local Supported Commands (0x04|0x0002) plen 0
> >> HCI Event: Command Complete (0x0e) plen 68
> > Read Local Supported Commands (0x04|0x0002) ncmd 1
> > status 0x00
> > Commands: ffffffffffff1ffffffffffff30fffff3f
> >
> > Therefore, it makes sense to move sending of HCI_Delete_Stored_Link_Key
> > to after receiving the supported commands response and to only send it
> > if its respective bit in the mask is set. The downside of this is that
> > we no longer send the HCI_Delete_Stored_Link_Key command for Bluetooth
> > 1.1 controllers since HCI_Read_Local_Supported_Command was introduced in
> > version 1.2, but this is an acceptable penalty as the command in
> > question shouldn't affect critical behavior.
> >
> > Reported-by: Pavel Machek <pavel@ucw.cz>
> > Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
> > ---
> > net/bluetooth/hci_core.c | 14 +++++++++-----
> > 1 file changed, 9 insertions(+), 5 deletions(-)
> >
> > diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> > index d817c93..d68425c 100644
> > --- a/net/bluetooth/hci_core.c
> > +++ b/net/bluetooth/hci_core.c
> > @@ -341,7 +341,6 @@ static void hci_init1_req(struct hci_request *req, unsigned long opt)
> >
> > static void bredr_setup(struct hci_request *req)
> > {
> > - struct hci_cp_delete_stored_link_key cp;
> > __le16 param;
> > __u8 flt_type;
> >
> > @@ -365,10 +364,6 @@ static void bredr_setup(struct hci_request *req)
> > param = __constant_cpu_to_le16(0x7d00);
> > hci_req_add(req, HCI_OP_WRITE_CA_TIMEOUT, 2, ¶m);
> >
> > - bacpy(&cp.bdaddr, BDADDR_ANY);
> > - cp.delete_all = 0x01;
> > - hci_req_add(req, HCI_OP_DELETE_STORED_LINK_KEY, sizeof(cp), &cp);
> > -
> > /* Read page scan parameters */
> > if (req->hdev->hci_ver > BLUETOOTH_VER_1_1) {
> > hci_req_add(req, HCI_OP_READ_PAGE_SCAN_ACTIVITY, 0, NULL);
> > @@ -602,6 +597,15 @@ static void hci_init3_req(struct hci_request *req, unsigned long opt)
> > struct hci_dev *hdev = req->hdev;
> > u8 p;
>
> I would have added here a comment to explain what bit we are checking for.
I just added:
/* Only send HCI_Delete_Stored_Link_Key if it is supported */
Gustavo
next prev parent reply other threads:[~2013-06-13 10:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-13 8:01 [PATCH] Bluetooth: Fix conditions for HCI_Delete_Stored_Link_Key Johan Hedberg
2013-06-13 8:45 ` Pavel Machek
2013-06-13 9:07 ` Johan Hedberg
2013-06-13 9:59 ` Gustavo Padovan
2013-06-13 10:34 ` Marcel Holtmann
2013-06-13 10:42 ` Gustavo Padovan [this message]
2013-06-13 10:48 ` Marcel Holtmann
2013-06-13 11:25 ` Gustavo Padovan
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=20130613104216.GA17870@joana \
--to=gustavo@padovan.org \
--cc=johan.hedberg@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=pavel@ucw.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox