Red Hat Bugzilla – Bug 125009
oops when accessing keyspan usb serial port
Last modified: 2007-11-30 17:10:43 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510
Description of problem:
The first time that I attempted to use my keyspan PDA adapter to sync
with my Palm pilot, I got an oops. In addition, the keyboard seemed to
After rebooting and trying the PDA adapter in several other USB ports
I was able to get it to work. I was unable to reproduce the oops.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Created attachment 100774 [details]
/var/log/messages from boot to shutdown
Since I couldn't figure out how to reproduce the problem, I'm including all of
the boot and shutdown messages from the system. The oops starts on line 348.
Created attachment 100775 [details]
Output from /proc/bus/usb/devices on working system
Created attachment 100776 [details]
Output from /proc/bus/usb/devices (corrected)
Created attachment 100778 [details]
Kernel log messages, including oops
I just upgraded to the 2.6.6-1.435 kernel, and now the bug happens
every time I try to sync.
The adapter is connected directly top the computer.
I start jpilot, but the Palm into my cradle, press the sync button on
the jpilot screen, and then push the hotsync button on the cradle.
I get the following messages from dmesg. Once this happens my
keyboard stops responding. I need to log in from a remote system to
reboot the computer.
usb 4-2: new full speed USB device using address 3
usbserial 4-2:1.0: Keyspan PDA converter detected
usb 4-2: Keyspan PDA converter now attached to ttyUSB0 (or usb/tts/0
Unable to handle kernel NULL pointer dereference at virtual address
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: keyspan keyspan_pda usbserial snd_intel8x0
_pcm snd_timer snd_page_alloc gameport snd_mpu401_uart snd_rawmidi
e snd soundcore i830 parport_pc lp parport ipv6 autofs4 sunrpc
8139too mii flopp
y sg scsi_mod microcode nls_utf8 nls_cp437 vfat fat dm_mod uhci_hcd
EIP: 0060:[<02115e6c>] Not tainted
EFLAGS: 00010012 (2.6.6-1.435)
EIP is at __wake_up_common+0x12/0x54
eax: 00000000 ebx: 00000202 ecx: 00000001 edx: 00000001
esi: 00000001 edi: 170003a4 ebp: 29e3ef4c esp: 29e3ef34
ds: 007b es: 007b ss: 0068
Process events/0 (pid: 3, threadinfo=29e3e000 task=29ceeb30)
Stack: 1590da80 29ceeb30 00000001 00000202 00000287 17000370 29e3ef60
00000000 00000000 00000000 29e6c238 2ae79018 00000000 16df6b64
2ae79000 ffffffff ffffffff 00000001 00000000 02115e4e 00010000
[<2ae79018>] keyspan_pda_wakeup_write+0x18/0x47 [keyspan_pda]
[<2ae79000>] keyspan_pda_wakeup_write+0x0/0x47 [keyspan_pda]
Code: 8b 10 39 f8 89 55 ec 74 31 8d 58 f4 8b 55 f0 8b 40 f4 ff 75
Sorry to admit, but at this point I'm reduced to begging Greg to help.
I too have seen this, but do not know what the fix is, sorry.
Wait, does the keyspan driver work for you instead?
Pete, why are you all building both the keyspan_pda and keyspan
drivers? Hm, do you need it for the xircom support? If so, only
config option and not the pda option.
I don't have an idea if keyspan drives a true superset of the
hardware driven by keyspan_pda.
We shippied keyspan_pda with FC1 (2.4 kernel), received no complaints.
A driver with a local worker thread does sound suspicious though.
Maybe it was always broken, but nobody used it.
It looks like your theory is correct. The problem is associated with
the keyspan_pda driver. I give some details below:
Over the last few weeks I got the adapter to work again. Before I
started my tests, I did an lsmod, and noticed that only the keyspan
driver was loaded. I tried a sync, and it worked.
I powered off the system and rebooted. lsmod showed that the
keyspan_pda driver was loaded. I tried a sync, and the system crashed
as described above.
I then did a cold boot, and used:
When I tried the sync, I didn't get a crash, but the sync seemed to
I then renamed the keyspan_pda driver so that it wouldn't load and
did a cold boot. lsmod shows that the keyspan driver loaded, but not
keyspan_pda. Hotsync worked.
I now seem to have a work-around. Is there a change that I could make
that would survive kernel upgrades?
Thanks for your help. It never occured to me that the problem could
be competing USB drivers.
I don't understand why the keyspan_pda module was loading. lsusb
reports 06cd:0107, which doesn't seem to be associated with
keyspan_pda at all. Then I tried renaming the keyspan module and
powering down. When I rebooted, lsusb showed 06cd:0103. This lines up
with KEYSPAN_PDA_FAKE_ID in keyspan_pda.c. I suspect that this change
in the USB device id explains why the problem seemed to appear when I
powered down the system but did not show up when I rebooted without
I'm going to try setting CONFIG_USB_SERIAL_KEYSPAN_PDA=n in
my .config and rebuilding the kernel.
The rebuilt kernel worked. Let me know if you need more information.
Created attachment 101729 [details]
Patch to fix this bug, from SuSE
That patch should fix this issue. If not, please let me know.
How is 2.6.7-1.494.2.2 doing?
It looks like it is fixed. I tried a cold boot and a sync and
Thanks for your help.