[bluetooth] linux-3.x regression (bisected)

From: Rene Herman
Date: Thu Dec 22 2011 - 18:42:03 EST


Good day.

A while ago, my noname USB Bluetooth adapter stopped working, with from that point on only "Bluetooth: hci0 command tx timeout" appearing in the kernel messages.

I just now got around to looking at it and bisected this to commit eead27da60df80a112d1ac3ea482226e9794c26b:

===
Author: Andre Guedes <andre.guedes@xxxxxxxxxxxxx>
Date: Thu Jun 30 19:20:55 2011 -0300

Bluetooth: Add lmp_host_le_capable() macro

Since we have the extended LMP features properly implemented, we
should check the LMP_HOST_LE bit to know if the host supports LE.

Signed-off-by: Andre Guedes <andre.guedes@xxxxxxxxxxxxx>
Signed-off-by: Gustavo F. Padovan <padovan@xxxxxxxxxxxxxx>
===

while that commit cannot be reverted outright due to dependencies, reverting it functionally fixes things for me. That is, Bluetooth works again after applying (to linux-3.1.6):

===
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 56943ad..c7f794e 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -540,7 +540,7 @@ int hci_dev_open(__u16 dev)
ret = __hci_request(hdev, hci_init_req, 0,

msecs_to_jiffies(HCI_INIT_TIMEOUT));

- if (lmp_host_le_capable(hdev))
+ if (lmp_le_capable(hdev))
ret = __hci_request(hdev, hci_le_init_req, 0,

msecs_to_jiffies(HCI_INIT_TIMEOUT));
===

It seems that my adapter wasn't ready for the change. It is a:

002 Device 002: ID 1131:1004 Integrated System Solution Corp. Bluetooth Device

If more specific information is wanted (to add adapter-specific quirk handling, perhaps?) please be verbose on how to obtain it. I don't know anything about Bluetooth

Rene.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/