Package: linux-image-2.6-amd64
Version: 2.6.29-5
Severity: normal
Tags: upstream
The garmin_gps module stopped working for connecting to Garmin 60Cx device
with gpsbabel. Since rebooting to kernel 2.6.25 makes it work without any
other changes to the system, I conclude it's driver problem rather than
gpsbabel problem.
The symptoms are, that when I run gpsbabel, either upload or download, with
2.6.29 or newer kernel, it locks up (stays in D state) and is not killable.
The Garmin MapSource running in Wine seemed not affected though, at least for
upload.
First known-bad version 2.6.29
Last known-good version 2.6.25
Note, that I already have newer kernel -- 2.6.30+20 -- installed (and the
dmesg output below is from that version). I am reporting against previous
version because I first noticed the problem there. Below you will find
relevant content of dmesg.
I am quickly posting this now in the hope that the trace below gives some
hint to somebody. Otherwise I will try bisecting it, but it will take me some
time to learn sane process for installing the non-Debian kernels here.
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (100,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=cs_CZ.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages linux-image-2.6-amd64 depends on:
ii linux-image-2.6.30-1-amd642.6.30-2 Linux 2.6.30 image on AMD64
linux-image-2.6-amd64 recommends no packages.
linux-image-2.6-amd64 suggests no packages.
Other packages related to the problem:
ii gpsbabel 1.3.6-3GPS file conversion plus transfer
to/from GPS units
-- no debconf information
Here is the device connection -- looks the same as on older kernels that
worked, though:
[ 72.718994] usb 3-2: new full speed USB device using ohci_hcd and address 3
[ 72.885994] usb 3-2: New USB device found, idVendor=091e, idProduct=0003
[ 72.885999] usb 3-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 72.886089] usb 3-2: configuration #1 chosen from 1 choice
[ 73.043061] usbcore: registered new interface driver usbserial
[ 73.043079] USB Serial support registered for generic
[ 73.043117] usbcore: registered new interface driver usbserial_generic
[ 73.043119] usbserial: USB Serial Driver core
[ 73.171972] USB Serial support registered for Garmin GPS usb/tty
[ 73.171994] garmin_gps 3-2:1.0: Garmin GPS usb/tty converter detected
[ 73.172080] usb 3-2: Garmin GPS usb/tty converter now attached to ttyUSB0
[ 73.172094] usbcore: registered new interface driver garmin_gps
[ 73.172096] garmin_gps: v0.31:garmin gps driver
Here is (there were in fact no other messages between) a message that the
gpsbabel process is blocked:
[ 240.448850] INFO: task gpsbabel:4174 blocked for more than 120 seconds.
[ 240.448854] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this
message.
[ 240.448856] gpsbabel D 88000103c0c0 0 4174 4164
[ 240.448861] 88007ccfa830 0082
8800683d7540
[ 240.448865] 0001 000120c0 e250
8800681f4b30
[ 240.448868] 8800681f4e20 000103c0 88007fbaf2b0
0246
[ 240.448872] Call Trace:
[ 240.448882] [] ? __mutex_lock_common+0x10f/0x17f
[ 240.448887] [] ? release_sysfs_dirent+0x66/0x7f
[ 240.448891] [] ? mutex_lock+0x12/0x28
[ 240.448894] [] ? usb_disable_endpoint+0x4f/0x68
[ 240.448904] [] ? usb_serial_disconnect+0x50/0x10a
[usbserial]
[ 240.448908] [] ? usb_unbind_interface+0x5b/0xe1
[ 240.448912] [] ? __device_release_driver+0x77/0x9e
[ 240.448915] [] ? device_release_driver+0x1e/0x2a
[ 240.448918] [] ? usb_driver_release_interface+0x3e/0x98
[ 240.448921] [] ? usb_forced_unbind_intf+0x17/0x1d
[ 240.448925] [] ? usb_reset_device+0x7d/0x118
[ 240.448929] [] ? autoremove_wake_function+0x0/0x2e
[ 240.448935] [] ? garmin_close+0x12d/0x181 [garmin_gps]
[ 240.448940] [] ? serial_close+0x99/0x157 [usbserial]
[ 240.448945] [] ? tty_release_dev+0x193/0x47f
[ 240.448949] [] ? tty_ldisc_deref+0x59/0x6b
[ 240.448953] [] ? vfs_ioctl+0x21/0x6c
[ 240.448956] [] ? tty_release+0x11/0x1a
[ 240.448959] [] ? __fput+0xc6/0x16e
[ 240.448962] [] ? filp_close+0x5b/0x62
[ 240.448965] [] ? sys_close+0x94/0xcd
[ 240.448969] [] ? system_call_fastpath+0x16/0x1b
The message repeats every 120 seconds and looks exactly the same (except for
the timestamp, so I won't repeat it here).
Last, I have tried SysRq+w and here is what appeared in dmesg after that:
[ 844.750098] SysRq : Show Blocked State
[ 844.750161] taskPC stack pid father
[ 844.750257] gpsbabel D 88000103c0c0 0 4174 4164
[ 844.750342] 88007ccfa830 0082
8800683d7540
[ 844.750450] 00