FS#27449 - [linux] Bluetooth: hci0 command tx timeout

Attached to Project: Arch Linux
Opened by René Herman (rene) - Sunday, 04 December 2011, 18:39 GMT
Last edited by Andrea Scarpino (BaSh) - Tuesday, 07 February 2012, 08:16 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

Recently, my brand-less USB bluetooth adapter has stopped working. Upon insertion, it's recognized but immediately bombs out with:

[ 28.823352] usb 2-1: new full speed USB device number 2 using uhci_hcd
[ 29.045600] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 29.215328] usbcore: registered new interface driver btusb
[ 30.350008] Bluetooth: hci0 command tx timeout

Used to work fine up to and including, if I'm not mistaken, 3.0.x. Already tons of this report out there in the google results; I'm hoping that bundling this problem through a distro-bugzilla helps in getting it fixed.

Additional info:

linux-3.1.4-1 (and, probably/maybe, a few version before that). A self-compiled 3.1 acts the same.

Steps to reproduce:

Try to use bluetooth
This task depends upon

Closed by  Andrea Scarpino (BaSh)
Tuesday, 07 February 2012, 08:16 GMT
Reason for closing:  Upstream
Additional comments about closing:  AFAIK is fixed in linux
Comment by vlad (vlaomao) - Thursday, 22 December 2011, 15:47 GMT
The same bug for me. Bluetooth is fully worked on kernel 3.0.7 ...
Comment by René Herman (rene) - Thursday, 22 December 2011, 23:29 GMT
I bisected this to commit eead27da60df80a112d1ac3ea482226e9794c26b. Now, that actually seems to be pre-3.0 meaning that you (#1) might be experiencing a different problem, but for me things are fixed by applying the below (to 3.1.6). If you compile your own kernels, I guess you could try.

Have sent this also to the commit authors and LKML, but it hasn't appeared in the LKML archives yet. Will update this to include the link later if I remember.

EDIT: https://lkml.org/lkml/2011/12/22/388

EDIT2: The email setup of a poster in that thread breaks threading on lkml.org (sigh...). If someone wants to view it:

http://groups.google.com/group/kernelarchive/browse_thread/thread/aa1be3172da10dac/6a81de4139de27c6?show_docid=6a81de4139de27c6#


[code]
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));
[/code]
Comment by René Herman (rene) - Thursday, 22 December 2011, 23:35 GMT
Okay, so how DO you tell this pretty-font edit-disaster to go fuck itself?
Comment by René Herman (rene) - Wednesday, 04 January 2012, 22:12 GMT
A fix for this problem has been submitted and should be present in linux 3.3:

http://article.gmane.org/gmane.linux.bluez.kernel/19950/
http://article.gmane.org/gmane.linux.bluez.kernel/19951/

Versions that apply cleanly against 3.1.7 available at:

https://lkml.org/lkml/2012/1/4/143

Comment by vlad (vlaomao) - Thursday, 26 January 2012, 11:04 GMT
The problem still present.
$ uname -r
3.2-pf


dmesg:
[ 3816.704098] usb 4-1: USB disconnect, device number 3
[ 3818.160051] usb 4-1: new full-speed USB device number 4 using uhci_hcd
[ 3819.464016] Bluetooth: hci0 command tx timeout
[ 3829.598020] Bluetooth: hci0 command tx timeout
[ 3830.204069] usb 4-1: USB disconnect, device number 4
Comment by René Herman (rene) - Thursday, 26 January 2012, 12:10 GMT
Yes, it seems that the "command tx timeout" is a very unspecific error, which just means that something, anything, is wrong.

As indicated in the above, my specific problem was (triggered by) my bluetooth adapter not supporting little-endian and the patches in 3.3 fix that specific issue. You seem to have a different issue.

If you are sure that the adapter worked in 3.0.N and stopped in, say, 3.1.M then I wouldn't have a much better suggestion than bisecting the problem. This presupposes that you are comfortable with compiling your own kernels. If you'd have a git tree setup that includes those stable versions (*), you'd start the process with

$ git bisect good v3.0.N
$ git bisect bad v3.1.M

Git now checks out an intermediate tree, which you then make / install / boot / test. If it's still not working in that one:

$ git bisect bad

... and repeat the make/test cycle. If it IS working, "git bisect good" instead and do the same. This should in the end lead you to the offending commit. The process entails a few kernel compiles, which you might be able to speed up by installing "ccache" before starting the bisection process:

https://wiki.archlinux.org/index.php/Ccache

Beware that the ccache version of the tools have to come in the path before the regular versions to have this work.

(*) "git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"

(note: I'd still like to request closure of this bug; the very unspecific error message means we'd be gathering up basically all different Bluetooth adapter-errors in this one report, which would be less than helpful.)

Loading...