Skip to contentSkip to conversation

2.4.22 usbserial/pl2303 oops

DISCUSSION Burjan Gabor 3 participants 7 messages Oct 27, 2003 – Oct 30, 2003

lore
Share & tools
lore
#0 lore raw

Hi,

[1.] One line summary of the problem:

Kernel oops related to emulated(?) serial device using pl2303 and pppd.

[2.] Full description of the problem/report:

I get the following oops shortly after pppd begins using the ttyUSB0 device. After the case I cannot use ttyUSB0 and the pppd process sticks in too (kill -9 is inefficient after the oops), so I have to reboot to redial.

[3.] Keywords (i.e., modules, networking, kernel):

usb, serial, kernel

[4.] Kernel version (from /proc/version):

Linux version 2.4.22-grsec (buga@piccolo) (gcc version 3.3.2 20030908 (Debian prerelease)) #1 Thu Sep 18 21:23:04 CEST 2003

[5.] Output of Oops.. message (if applicable) with symbolic information
resolved (see Documentation/oops-tracing.txt)

Unable to handle kernel NULL pointer dereference at virtual address 00000014
d085e714
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<d085e714>]    Not tainted

Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010087
eax: cfec7000 ebx: cf3e1d20 ecx: 00000001 edx: 00000000
esi: cff32960 edi: cf3e1d20 ebp: 00000292 esp: c0793e80
ds: 0018 es: 0018 ss: 0018
Process pppd (pid: 7343, stackpage=c0793000)

Stack: cf3e1d20 cff32960 00000286 cf3e1d24 d085f483 cf3e1d20 cf3e1d20 00000000
       cfab61d4 00000000 ce10581c ce105874 00000000 d085245d cf3e1d20 d08c1490
       cf3e1d20 00000000 c0217009 ce10581c c0720000 d08ba407 ce10581c ce689440
Call Trace:    [<d085f483>] [<d085245d>] [<d08c1490>] [<c0217009>] [<d08ba407>]
  [<d08ba4d5>] [<c0212a9f>] [<c0217173>] [<c0212eaf>] [<c01c6e8c>] [<c01c547d>]
  [<c01c54fe>] [<c01942af>]
Code: 8b 52 14 83 ea 1c 8b 42 04 8b 5a 08 25 00 00 00 2f 0d 00 00
Quoted 7 lines
Quoted 7 lines

EIP; d085e714 <[uhci]uhci_reset_interrupt+24/a0> <=====

eax; cfec7000 <_end+fba6140/1051f1a0>
ebx; cf3e1d20 <_end+f0c0e60/1051f1a0>
esi; cff32960 <_end+fc11aa0/1051f1a0>
edi; cf3e1d20 <_end+f0c0e60/1051f1a0>
esp; c0793e80 <_end+472fc0/1051f1a0>

Trace; d085f483 <[uhci]uhci_unlink_urb+133/180>
Trace; d085245d <[usbcore]usb_unlink_urb+3d/40>
Trace; d08c1490 <[snd-seq-device]snd_seq_device_register_driver+30/120> Trace; c0217009 <change_termios+1b9/230>
Trace; d08ba407 <[ip_tables]mark_source_chains+27/1d0> Trace; d08ba4d5 <[ip_tables]mark_source_chains+f5/1d0> Trace; c0212a9f <release_dev+55f/5a0>
Trace; c0217173 <set_termios+f3/140>
Trace; c0212eaf <tty_release+f/20>
Trace; c01c6e8c <fput+fc/120>
Trace; c01c547d <filp_close+4d/80>
Trace; c01c54fe <sys_close+4e/60>
Trace; c01942af <system_call+33/38>

Code; d085e714 <[uhci]uhci_reset_interrupt+24/a0> 00000000 <_EIP>:
Code; d085e714 <[uhci]uhci_reset_interrupt+24/a0> <=====
0: 8b 52 14 mov 0x14(%edx),%edx <=====
Code; d085e717 <[uhci]uhci_reset_interrupt+27/a0>
3: 83 ea 1c sub $0x1c,%edx
Code; d085e71a <[uhci]uhci_reset_interrupt+2a/a0>
6: 8b 42 04 mov 0x4(%edx),%eax
Code; d085e71d <[uhci]uhci_reset_interrupt+2d/a0>
9: 8b 5a 08 mov 0x8(%edx),%ebx
Code; d085e720 <[uhci]uhci_reset_interrupt+30/a0>
c: 25 00 00 00 2f and $0x2f000000,%eax
Code; d085e725 <[uhci]uhci_reset_interrupt+35/a0>
11: 0d 00 00 00 00 or $0x0,%eax

[6.] A small shell script or example program which triggers the
problem (if possible)

pon wgprs
wget ...largefile...

[7.] Environment
[7.1.] Software (add the output of the ver_linux script here)

Linux piccolo 2.4.22-grsec #1 Thu Sep 18 21:23:04 CEST 2003 i686 GNU/Linux

Gnu C                  3.3.2
Gnu make               3.80
util-linux             2.12
mount                  2.12
modutils               2.4.25
e2fsprogs              1.35-WIP
pcmcia-cs              3.2.2
PPP                    2.4.2b3
Linux C Library        2.3.2
Dynamic linker (ldd)   2.3.2
Procps                 3.1.14
Net-tools              1.60
Console-tools          0.2.3
Sh-utils               5.0.91
Modules Loaded         pl2303 usbserial apm snd-seq-oss snd-seq-midi-event snd-seq snd-seq-device ipt_REJECT ipt_LOG ipt_state ip_conntrack iptable_filter ip_tables snd-pcm-oss snd-mixer-oss snd-maestro3 snd-pcm snd-timer snd-page-alloc snd-ac97-codec snd soundcore keybdev mousedev hid input uhci usbcore e100

[7.2.] Processor information (from /proc/cpuinfo):

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 10
cpu MHz : 697.430
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 1392.64

[7.3.] Module information (from /proc/modules):

pl2303                 13016   0 (unused)
usbserial              18460   0 [pl2303]
apm                    10188   2 (autoclean)
snd-seq-oss            29632   0 (unused)
snd-seq-midi-event      3264   0 [snd-seq-oss]
snd-seq                36816   2 [snd-seq-oss snd-seq-midi-event]
snd-seq-device          4288   0 [snd-seq-oss snd-seq]
ipt_REJECT              3448   2 (autoclean)
ipt_LOG                 3416   1 (autoclean)
ipt_state                568   1 (autoclean)
ip_conntrack           18084   1 (autoclean) [ipt_state]
iptable_filter          1740   1 (autoclean)
ip_tables              12480   4 [ipt_REJECT ipt_LOG ipt_state iptable_filter]
snd-pcm-oss            39556   0
snd-mixer-oss          13592   0 [snd-pcm-oss]
snd-maestro3           14756   0
snd-pcm                61092   0 [snd-pcm-oss snd-maestro3]
snd-timer              14436   0 [snd-seq snd-pcm]
snd-page-alloc          6420   0 [snd-pcm]
snd-ac97-codec         41400   0 [snd-maestro3]
snd                    29700   0 [snd-seq-oss snd-seq-midi-event snd-seq snd-seq-device snd-pcm-oss snd-mixer-oss snd-maestro3 snd-pcm snd-timer snd-ac97-codec]
soundcore               3652   5 [snd]
keybdev                 2116   0 (unused)
mousedev                4372   1
hid                    15496   0 (unused)
input                   3328   0 [keybdev mousedev hid]
uhci                   25916   0 (unused)
usbcore                40004   0 [pl2303 usbserial hid uhci]
e100                   49096   1

[7.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)

ioports:
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(set)
0cf8-0cff : PCI conf1
1000-103f : Intel Corp. 82371AB/EB/MB PIIX4 ACPI 1100-111f : Intel Corp. 82371AB/EB/MB PIIX4 ACPI 2000-2fff : PCI Bus #01
2000-20ff : ATI Technologies Inc Rage Mobility P/M AGP 2x
3000-30ff : ESS Technology ES1988 Allegro-1
3000-30ff : Allegro
3400-343f : Intel Corp. 82557/8/9 [Ethernet Pro 100]
3400-343f : e100
3440-345f : Intel Corp. 82371AB/EB/MB PIIX4 USB
3440-345f : usb-uhci
3460-346f : Intel Corp. 82371AB/EB/MB PIIX4 IDE
3460-3467 : ide0
3468-346f : ide1
3470-3477 : Lucent Microelectronics LT WinModem 4000-40ff : PCI CardBus #02
4400-44ff : PCI CardBus #02

iomem:
00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000d0000-000d17ff : Extension ROM
000f0000-000fffff : System ROM
00100000-0ffcffff : System RAM
00190000-002e8ce5 : Kernel code
0ffd0000-0fff0bff : reserved
0fff0c00-0fffbfff : ACPI Non-volatile Storage 0fffc000-0fffffff : reserved
10000000-103fffff : PCI CardBus #02
10400000-107fffff : PCI CardBus #02
40000000-410fffff : PCI Bus #01
40000000-40ffffff : ATI Technologies Inc Rage Mobility P/M AGP 2x 41000000-41000fff : ATI Technologies Inc Rage Mobility P/M AGP 2x
41100000-4111ffff : Intel Corp. 82557/8/9 [Ethernet Pro 100]
41100000-4111ffff : e100
41180000-41180fff : Texas Instruments PCI1211 41200000-41200fff : Intel Corp. 82557/8/9 [Ethernet Pro 100]
41200000-41200fff : e100
41280000-41280fff : Lucent Microelectronics LT WinModem 50000000-53ffffff : Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge

[7.5.] PCI information ('lspci -vvv' as root)

00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)

	Subsystem: Compaq Computer Corporation Armada M700
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
	Latency: 64
	Region 0: Memory at 50000000 (32-bit, prefetchable) [size=64M]
	Capabilities: [a0] AGP version 1.0
		Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x2
		Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x2

00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) (prog-if 00 [Normal decode])

	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	I/O behind bridge: 00002000-00002fff
	Memory behind bridge: 40000000-410fffff
	Prefetchable memory behind bridge: fff00000-000fffff
	BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B+

00:04.0 CardBus bridge: Texas Instruments PCI1211

	Subsystem: Compaq Computer Corporation: Unknown device b103
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 168, Cache Line Size: 0x08 (32 bytes)
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at 41180000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=176
	Memory window 0: 10000000-103ff000 (prefetchable)
	Memory window 1: 10400000-107ff000
	I/O window 0: 00004000-000040ff
	I/O window 1: 00004400-000044ff
	BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
	16-bit legacy interface ports at 0001

00:07.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])

	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64
	Region 4: I/O ports at 3460 [size=16]

00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64
Interrupt: pin D routed to IRQ 11
Region 4: I/O ports at 3440 [size=32]

00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03)
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin ? routed to IRQ 9

00:08.0 Multimedia audio controller: ESS Technology ES1988 Allegro-1 (rev 12)
Subsystem: Compaq Computer Corporation: Unknown device b114
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (500ns min, 6000ns max)
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at 3000 [size=256]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:09.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 09)
Subsystem: Intel Corp. EtherExpress PRO/100 P Mobile Combo Adapter
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 66 (2000ns min, 14000ns max), Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 41200000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at 3400 [size=64]
Region 2: Memory at 41100000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-

00:09.1 Serial controller: Lucent Microelectronics LT WinModem (prog-if 00 [8250])
Subsystem: Intel Corp.: Unknown device 2201
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at 3470 [size=8]
Region 1: Memory at 41280000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-

01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64) (prog-if 00 [VGA])
Subsystem: Compaq Computer Corporation Armada M700
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 66 (2000ns min), Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 40000000 (32-bit, non-prefetchable) [size=16M]
Region 1: I/O ports at 2000 [size=256]
Region 2: Memory at 41000000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: [50] AGP version 1.0
Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x1,x2
Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>
Capabilities: [5c] Power Management version 1
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

[7.6.] SCSI information (from /proc/scsi/scsi)

(no scsi)

[7.7.] Other information that might be relevant to the problem
(please look in /proc and include all information that you think to be relevant):

/proc/tty/driver/usb-serial:

usbserinfo:1.0 driver:v1.4
0: module:pl2303 name:"PL-2303" vendor:067b product:2303 num_ports:1 port:1 path:usb-00:07.2-2.2

Buga

#1 lore raw
Quoted 5 lines · Burjan Gabor

Hi,

[1.] One line summary of the problem:

Kernel oops related to emulated(?) serial device using pl2303 and pppd.

Can you try 2.4.23-pre8 and see if that fixes your problem?

thanks,

greg k-h

#2 lore raw
Quoted 1 line · Greg KH

Can you try 2.4.23-pre8 and see if that fixes your problem?

2.4.23-pre8 fixed that, so the serial emulation is working now.

How can I grove the serial baud rate? After I change the baud rate over 9600 bps in minicom, I see only the noise and cannot communicate with the built-in modem of my phone. In the phone I can't force the communication speed, so I have to use some software solution.

RTFM with a pointer to any relevant documentation is sufficient for me.

Thank for your help,

Gabor

#3 lore raw
Quoted 10 lines · Burjan Gabor
Quoted 1 line · Greg KH

Can you try 2.4.23-pre8 and see if that fixes your problem?

2.4.23-pre8 fixed that, so the serial emulation is working now.

How can I grove the serial baud rate? After I change the baud rate over 9600 bps in minicom, I see only the noise and cannot communicate with the built-in modem of my phone. In the phone I can't force the communication speed, so I have to use some software solution.

"grove"? What does that mean?

Have you read the Linux Serial Programming HOWTO?

greg k-h

#4 lore raw
In reply to Burjan Gabor

I have a different problem with the pl2303 module, but have no clue where to search: I have an ericsson cradle that I check repeatedly if a cell phone is plugged in or not.

I wrote a small program that sends AT commands to the modem every few seconds, and when an OK arrives, everythings fine. It is indeed fine, until I unplug the phone and insert it again:
The program writes the 'AT\r\n' correctly, and I do get an answer of the right length, but the read buffer does contain only zeros, although the right length is returned.

Some things get me out of this loop of hell:
o reloading the pl2303 module
o when I re-insert the phone, I get correct data about every tenth try.
o minicom seems to do additional initialization that cures the problem as well.
I looked through straces of minicom as well as the other programs, but did not find any significant difference. I did also load pl2303 with debug on, and found that it receives the right values in its internal buffer, but they are not getting out of the module.

Can anyone give me a clue where I should look next?

thanks
Simon

Signature · 9 lines
------------------------------------------------
Dr. Simon Vogl
Department  of   Computer  Science
Johannes Kepler University of Linz
Altenberger Straße 69
A-4040 Linz - Austria

Tel: +43 70 2468 8517  [email protected]
Fax: +43 70 2468 8426   www.soft.uni-linz.ac.at
#5 lore raw
Quoted 3 lines · Simon Vogl

I have a different problem with the pl2303 module, but have no clue where to search: I have an ericsson cradle that I check repeatedly if a cell phone is plugged in or not.

Does this happen on the latest 2.4.23-pre8 kernel? Does this happen on 2.6.0-test9?

thanks,

greg k-h

#6 lore raw

it does with 2.4.23-pre8, i will check the test9 as well Simon

Quoted 13 lines · Greg KH
Quoted 3 lines · Simon Vogl

I have a different problem with the pl2303 module, but have no clue where to search: I have an ericsson cradle that I check repeatedly if a cell phone is plugged in or not.

Does this happen on the latest 2.4.23-pre8 kernel? Does this happen on 2.6.0-test9?

thanks,

greg k-h

Signature · 9 lines
------------------------------------------------
Dr. Simon Vogl
Department  of   Computer  Science
Johannes Kepler University of Linz
Altenberger Straße 69
A-4040 Linz - Austria

Tel: +43 70 2468 8517  [email protected]
Fax: +43 70 2468 8426   www.soft.uni-linz.ac.at