Bug 125009 - oops when accessing keyspan usb serial port
oops when accessing keyspan usb serial port
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Pete Zaitcev
Depends On:
  Show dependency treegraph
Reported: 2004-06-01 20:45 EDT by Greg Hartman
Modified: 2007-11-30 17:10 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2004-08-12 03:01:25 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
/var/log/messages from boot to shutdown (1.13 KB, text/plain)
2004-06-01 20:58 EDT, Greg Hartman
no flags Details
Output from /proc/bus/usb/devices on working system (1.13 KB, text/plain)
2004-06-01 21:00 EDT, Greg Hartman
no flags Details
Output from /proc/bus/usb/devices (corrected) (3.67 KB, text/plain)
2004-06-01 21:04 EDT, Greg Hartman
no flags Details
Kernel log messages, including oops (33.60 KB, text/plain)
2004-06-01 21:15 EDT, Greg Hartman
no flags Details
Patch to fix this bug, from SuSE (2.37 KB, patch)
2004-07-08 14:58 EDT, Greg Kroah-Hartman
no flags Details | Diff

  None (edit)
Description Greg Hartman 2004-06-01 20:45:05 EDT
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
lock up. 

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):

How reproducible:
Couldn't Reproduce

Steps to Reproduce:

Additional info:
Comment 1 Greg Hartman 2004-06-01 20:58:12 EDT
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.
Comment 2 Greg Hartman 2004-06-01 21:00:11 EDT
Created attachment 100775 [details]
Output from /proc/bus/usb/devices on working system
Comment 3 Greg Hartman 2004-06-01 21:04:14 EDT
Created attachment 100776 [details]
Output from /proc/bus/usb/devices (corrected)
Comment 4 Greg Hartman 2004-06-01 21:15:58 EDT
Created attachment 100778 [details]
Kernel log messages, including oops
Comment 5 Greg Hartman 2004-06-16 23:16:09 EDT
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 
for devfs)
Unable to handle kernel NULL pointer dereference at virtual address 
 printing eip:
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: keyspan keyspan_pda usbserial snd_intel8x0 
snd_ac97_codec snd
_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 
ehci_hcd ext
3 jbd
CPU:    0
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 
Call Trace:
 [<02115ebf>] __wake_up+0x11/0x1a
 [<2ae79018>] keyspan_pda_wakeup_write+0x18/0x47 [keyspan_pda]
 [<02122d8a>] worker_thread+0x155/0x1b4
 [<2ae79000>] keyspan_pda_wakeup_write+0x0/0x47 [keyspan_pda]
 [<02115e4e>] default_wake_function+0x0/0xc
 [<02115e4e>] default_wake_function+0x0/0xc
 [<02122c35>] worker_thread+0x0/0x1b4
 [<021251e1>] kthread+0x69/0x91
 [<02125178>] kthread+0x0/0x91
 [<021041d9>] kernel_thread_helper+0x5/0xb

Code: 8b 10 39 f8 89 55 ec 74 31 8d 58 f4 8b 55 f0 8b 40 f4 ff 75
Comment 6 Pete Zaitcev 2004-06-22 19:54:57 EDT
Sorry to admit, but at this point I'm reduced to begging Greg to help.
Comment 7 Greg Kroah-Hartman 2004-07-07 18:52:54 EDT
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
select that
config option and not the pda option.
Comment 8 Pete Zaitcev 2004-07-07 20:14:13 EDT
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.
Comment 9 Greg Hartman 2004-07-07 20:21:12 EDT
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:

rmmod keyspan_pda
isnmod keyspan

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 
powering down.

I'm going to try setting CONFIG_USB_SERIAL_KEYSPAN_PDA=n in 
my .config and rebuilding the kernel.
Comment 10 Greg Hartman 2004-07-08 13:48:17 EDT
The rebuilt kernel worked. Let me know if you need more information.
Comment 11 Greg Kroah-Hartman 2004-07-08 14:58:33 EDT
Created attachment 101729 [details]
Patch to fix this bug, from SuSE
Comment 12 Greg Kroah-Hartman 2004-07-08 14:58:55 EDT
That patch should fix this issue.  If not, please let me know.
Comment 13 Pete Zaitcev 2004-08-10 15:42:29 EDT
How is 2.6.7-1.494.2.2 doing?
Comment 14 Greg Hartman 2004-08-11 21:52:02 EDT
It looks like it is fixed. I tried a cold boot and a sync and
everything worked.

Thanks for your help.

Note You need to log in before you can comment on or make changes to this bug.