Bug 6425

Summary: usbserial hangs system when downloading big files.
Product: Networking Reporter: redwood (jazz_johnson)
Component: OtherAssignee: Greg Kroah-Hartman (greg)
Status: REJECTED INVALID    
Severity: high CC: akpm
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.15-gentoo-r1 Subsystem:
Regression: --- Bisected commit-id:
Bug Depends on:    
Bug Blocks: 5089    
Attachments: Here's my /proc/config.gz

Description redwood 2006-04-21 23:18:27 UTC
Most recent kernel where this bug did not occur:
Distribution: amd64 Gentoo
Hardware Environment: HP SE L2000 laptop
Software Environment: 
Problem Description: Kyocera kpc650 EVDO pcmcia airmodem card ALWAYS hangs the
computer when I browse to a site with a big page or if I download large files,
e.g. `svn up` or `wget somefile.bz2`. Otherwise the card functions OK.

I get the following message on my root window:
[cut here]
Kernel Bug at net/core/skbuff.c:94
invalid operand: 0000 [1] SMP
Modules linked in :
ppp_deflate             7104  0
zlib_deflate           23256  1 ppp_deflate
bsd_comp                7488  0
ip_conntrack_irc        8144  0
ip_conntrack_ftp        8848  0
ipt_REJECT              6464  4
ipt_LOG                 8000  4
ipt_limit               4288  4
ipt_state               3904  181
ip_conntrack           50236  3 ip_conntrack_irc,ip_conntrack_ftp,ipt_state
iptable_filter          4800  1
ip_tables              20224  5
ipt_REJECT,ipt_LOG,ipt_limit,ipt_state,iptable_filter
rfcomm                 35296  6
l2cap                  24064  5 rfcomm
snd_pcm_oss            48352  0
snd_mixer_oss          16768  1 snd_pcm_oss
snd_seq_dummy           5124  0
snd_seq_oss            31616  0
snd_seq_midi_event      8704  1 snd_seq_oss
snd_seq                51456  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          9360  3 snd_seq_dummy,snd_seq_oss,snd_seq
uhci_hcd               31832  0
ohci1394               31116  0
8139cp                 19968  0
snd_atiixp_modem       15116  1
snd_atiixp             18772  1
snd_ac97_codec         99416  2 snd_atiixp_modem,snd_atiixp
snd_ac97_bus            4480  1 snd_ac97_codec
snd_pcm                82440  4
snd_pcm_oss,snd_atiixp_modem,snd_atiixp,snd_ac97_codec
snd_timer              22472  2 snd_seq,snd_pcm
snd                    50504  14
snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_atiixp_modem,snd_atiixp,snd_ac97_codec,snd_pcm,snd_timer
snd_page_alloc         11152  3 snd_atiixp_modem,snd_atiixp,snd_pcm
binfmt_misc            11724  1
ppp_async              11200  1
ppp_generic            26912  7 ppp_deflate,bsd_comp,ppp_async
slhc                    8000  1 ppp_generic
crc_ccitt               4096  1 ppp_async
usbserial              29488  3
ehci_hcd               40712  0
fglrx                 503936  21
ndiswrapper           206816  0
hci_usb                16404  5
ohci_hcd               30788  0
Steps to reproduce:
Download a big file or browse to a site with lots of graphics.
I have not tried to see if uploading a large file also crashes the system.
I guess I'm reporting this problem to the right kernelbugs section going by
the "net/core/skbuff.c:94" error message. 
Do you need the stack/register info that also got written to the root window?
It's just hard to copy all this by hand since the system is frozen and I can't
cut-n-paste.
Comment 1 Andrew Morton 2006-04-21 23:35:00 UTC
It'd be great if you could test 2.6.16.
Comment 2 Greg Kroah-Hartman 2006-04-21 23:43:17 UTC
What usb-serial driver are you using for this?  I don't see one in your
module listing.

Or are you using the "generic" usb-serial driver?
Comment 3 redwood 2006-04-22 12:43:33 UTC
Created attachment 7936 [details]
Here's my /proc/config.gz

There is very little information on the Kyocera kpc650 card on google.
The web site http://wireless-internet-broadband-service.com/ has a link
for a linux driver:
http://wireless-internet-broadband-service.com/evdo-linux-kpc650-v650-driver.doc


But I followed the Gentoo guide:
https://forums.gentoo.org/viewtopic-t-427992.html
which patched the generic usbserial driver by adding  a "maxSize= parameter" to
mitigate time-outs caused by the modem's high bandpass being greater than the
usbserial driver's ability to keep up. However, I have never had Verizon EVDO
kick me off because of a timeout error. I am able to browse the internet just
fine so long as I stay clear of sites with fancy graphics. If instead of
connecting with the kpc650, I connect through my wlan0 I have no such
restrictions (i.e. I don't have some macromedia/flash/javascript problem)

I do have to add the kernel paramter "pci-assign-busses" to my grub.conf
or my kpc650 doesn't power up or get recognized by the kernel.

My lsmod listing which I included in my bug report shows my driver:
"usbserial 29488  3"


I guess I can give one of the 2.6.16.? kernels a try, but I'll have to wait
until I go into work Monday and have wlan access so that I can download the
tarball without crashing.
Comment 4 Greg Kroah-Hartman 2006-04-22 15:11:02 UTC
No, that patch for the usb-serial core is wrong, do not use it.

Also, the generic driver as you are using, is not designed to handle large
ammounts of data, as there is no flow control.

So if you do use it, you are on your own.  I suggest creating a separate driver
for this device, with full flow control, so it will work properly for you.