Skip to contentSkip to conversation

Bluetooth regression in 3.10

PATCH Michael Büsch 2 participants 3 messages Sep 4, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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
Quoted 1 line

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:

net/bluetooth/hci_core.c +1 -1
Index: linux/net/bluetooth/hci_core.c
===================================================================
@@ -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.

Signature · 1 line
Michael
maintainer
#1 lore raw

Hi Michael,

Quoted 11 lines

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.

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

hcidump hci0 -X shows:

Quoted 7 lines

< HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7
bdaddr 00:00:00:00:00:00 all 1

Quoted 1 line

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.

Quoted 7 lines

The following workaround fixes the problem for me:

Index: linux/net/bluetooth/hci_core.c
===================================================================

net/bluetooth/hci_core.c line 604

Quoted 8 lines
net/bluetooth/hci_core.c +1 -1
@@ -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

#2 lore raw
Quoted 3 lines · On Wed, 4 Sep 2013 08:40:00 -0700 Marcel Holtmann <[email protected]> wrote:
Quoted 1 line

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.

Quoted 1 line

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

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

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?

Signature · 1 line
Michael