linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Bluetooth regression in 3.10
@ 2013-09-04 13:53 Michael Büsch
  2013-09-04 15:40 ` Marcel Holtmann
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Büsch @ 2013-09-04 13:53 UTC (permalink / raw)
  To: johan.hedberg; +Cc: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 1571 bytes --]

Hi Johan,

I noticed the thread "3.10-rc: bluetooth disappeared on thinkpad x60 (regression)"
on lkml, but unfortunately the resulting patch does not fix the regression
for me.
I'm running 3.10.10, so the fix from the thread is applied to my kernel.

I see similar issues when trying to bring up my Bluetooth dongle:

$ lsusb | grep Blue
Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

This is a Broadcom chip based device.

$ hciconfig hci0 up                                            
Can't init device hci0: Operation not supported (95)

hcidump hci0 -X shows:

< 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
device: disconnected


The following workaround fixes the problem for me:

Index: linux/net/bluetooth/hci_core.c
===================================================================
--- linux.orig/net/bluetooth/hci_core.c	2013-07-21 17:34:22.749435335 +0200
+++ linux/net/bluetooth/hci_core.c	2013-09-04 15:39:07.580170034 +0200
@@ -598,7 +598,7 @@
 	u8 p;
 
 	/* Only send HCI_Delete_Stored_Link_Key if it is supported */
-	if (hdev->commands[6] & 0x80) {
+	if (0) {
 		struct hci_cp_delete_stored_link_key cp;
 
 		bacpy(&cp.bdaddr, BDADDR_ANY);


This isn't a real solution, of course.
I would be happy to test alternative solutions.

-- 
Michael

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Bluetooth regression in 3.10
  2013-09-04 13:53 Bluetooth regression in 3.10 Michael Büsch
@ 2013-09-04 15:40 ` Marcel Holtmann
  2013-09-04 16:14   ` Michael Büsch
  0 siblings, 1 reply; 3+ messages in thread
From: Marcel Holtmann @ 2013-09-04 15:40 UTC (permalink / raw)
  To: Michael Büsch; +Cc: johan.hedberg, linux-bluetooth

Hi Michael,

> I noticed the thread "3.10-rc: bluetooth disappeared on thinkpad x60 (regression)"
> on lkml, but unfortunately the resulting patch does not fix the regression
> for me.
> I'm running 3.10.10, so the fix from the thread is applied to my kernel.
> 
> I see similar issues when trying to bring up my Bluetooth dongle:
> 
> $ lsusb | grep Blue
> Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
> 
> This is a Broadcom chip based device.

that device is CSR based and not Broadcom based. Check with hciconfig hci0 version to see what it really is.
> 
> $ hciconfig hci0 up                                            
> Can't init device hci0: Operation not supported (95)
> 
> hcidump hci0 -X shows:
> 
> < 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
> device: disconnected

And hciconfig hci0 commands tells you that this command is actually supported.

> The following workaround fixes the problem for me:
> 
> Index: linux/net/bluetooth/hci_core.c
> ===================================================================
> --- linux.orig/net/bluetooth/hci_core.c	2013-07-21 17:34:22.749435335 +0200
> +++ linux/net/bluetooth/hci_core.c	2013-09-04 15:39:07.580170034 +0200
> @@ -598,7 +598,7 @@
> 	u8 p;
> 
> 	/* Only send HCI_Delete_Stored_Link_Key if it is supported */
> -	if (hdev->commands[6] & 0x80) {
> +	if (0) {
> 		struct hci_cp_delete_stored_link_key cp;
> 
> 		bacpy(&cp.bdaddr, BDADDR_ANY);

Can you toy with hcitool cmd to send the HCI_Delete_Stored_Link_Key commands and see what parameters it would accept to delete all keys.

Regards

Marcel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Bluetooth regression in 3.10
  2013-09-04 15:40 ` Marcel Holtmann
@ 2013-09-04 16:14   ` Michael Büsch
  0 siblings, 0 replies; 3+ messages in thread
From: Michael Büsch @ 2013-09-04 16:14 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: johan.hedberg, linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 679 bytes --]

On Wed, 4 Sep 2013 08:40:00 -0700
Marcel Holtmann <marcel@holtmann.org> wrote:

> > This is a Broadcom chip based device.
> 
> that device is CSR based and not Broadcom based. Check with hciconfig hci0 version to see what it really is.

I'm pretty sure there is a Broadcom chip in there, because I opened it once.

> Check with hciconfig hci0 version to see what it really is.

$ hciconfig hci0 version | grep Manu
        Manufacturer: Broadcom Corporation (15)

> Can you toy with hcitool cmd to send the HCI_Delete_Stored_Link_Key commands and see what parameters it would accept to delete all keys.

Can you give me a few hints and examples?

-- 
Michael

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-09-04 16:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-04 13:53 Bluetooth regression in 3.10 Michael Büsch
2013-09-04 15:40 ` Marcel Holtmann
2013-09-04 16:14   ` Michael Büsch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).