2002-08-31 19:16:37

by Tony Hoyle

[permalink] [raw]
Subject: Oops in pl2303 driver

I've just acquired a USB datacable for my phone which appears to have a
PL2303 chipset in it (at least that's what hotplug loaded when I plugged
it in). However this driver doesn't appear to work... No data is
transferred and when the software (gnokii) gives up I get an oops:

Aug 31 20:05:31 spock kernel: Unable to handle kernel NULL pointer
dereference at virtual address 00000014
Aug 31 20:05:31 spock kernel: d48a1344
Aug 31 20:05:31 spock kernel: *pde = 0d5e3067
Aug 31 20:05:31 spock kernel: Oops: 0000
Aug 31 20:05:31 spock kernel: CPU: 0
Aug 31 20:05:31 spock kernel: EIP:
0010:[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-302268/96]
Not tainted
Aug 31 20:05:31 spock kernel: EFLAGS: 00010006
Aug 31 20:05:31 spock kernel: eax: cef18000 ebx: ffffff8d ecx:
cef8b400 edx: 00000000
Aug 31 20:05:31 spock kernel: esi: cee98c40 edi: 00000000 ebp:
00000246 esp: c57c3e48
Aug 31 20:05:31 spock kernel: ds: 0018 es: 0018 ss: 0018
Aug 31 20:05:31 spock kernel: Process xgnokii (pid: 760, stackpage=c57c3000)
Aug 31 20:05:31 spock kernel: Stack: ffffff8d cee98c40 00000000 00000282
d48a2b10 cee98c40 cee98c44 cee98c40
Aug 31 20:05:31 spock kernel: 00000286 cf0371c0 00000001 00000000
cef18200 cf09826c d48a1fe2 cee98c40
Aug 31 20:05:31 spock kernel: cef8b478 cef8b420 ffffffff cef8b400
cf09826c d4891146 cee98c40 d48e5fb9
Aug 31 20:05:31 spock kernel: Call Trace:
[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-296176/96]
[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-299038/96]
[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-368314/96]
[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-20551/96]
[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-43801/96]
Aug 31 20:05:31 spock kernel: Code: 8b 52 14 8b 42 e8 8b 7a ec 25 00 00
00 2f 0d 00 00 80 01 89


>>eax; cef18000 <_end+ec4ecbc/14587d1c>
>>ecx; cef8b400 <_end+ecc20bc/14587d1c>
>>esi; cee98c40 <_end+ebcf8fc/14587d1c>
>>esp; c57c3e48 <_end+54fab04/14587d1c>

Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: 8b 52 14 mov 0x14(%edx),%edx
Code; 00000003 Before first symbol
3: 8b 42 e8 mov 0xffffffe8(%edx),%eax
Code; 00000006 Before first symbol
6: 8b 7a ec mov 0xffffffec(%edx),%edi
Code; 00000009 Before first symbol
9: 25 00 00 00 2f and $0x2f000000,%eax
Code; 0000000e Before first symbol
e: 0d 00 00 80 01 or $0x1800000,%eax
Code; 00000013 Before first symbol
13: 89 00 mov %eax,(%eax)


1 warning issued. Results may not be reliable.
spock:/home/tmh# lsmod
Module Size Used by Not tainted
soundcore 3556 0 (autoclean)
nfsd 68208 8 (autoclean)
mousedev 3828 2
hid 19332 0 (unused)
usbmouse 1812 0 (unused)
input 3360 0 [mousedev hid usbmouse]
pl2303 10424 1
usbserial 16188 0 [pl2303]
serial 42404 0 (autoclean)
nfs 64120 1 (autoclean)
lockd 48688 1 (autoclean) [nfsd nfs]
sunrpc 59932 1 (autoclean) [nfsd nfs lockd]
uhci 24048 0 (unused)
usbcore 56480 1 [hid usbmouse pl2303 usbserial uhci]
raw1394 6584 0 (unused)
ieee1394 30412 0 [raw1394]
radeon 93760 15
agpgart 15060 3

Simply using 'cat /dev/ttyUSB0' seems to be enough to cause the oops, so
it's definately the driver rather than the software.

Tony




2002-09-01 00:48:12

by Greg KH

[permalink] [raw]
Subject: Re: Oops in pl2303 driver

On Sat, Aug 31, 2002 at 08:24:03PM +0100, Tony Hoyle wrote:
> I've just acquired a USB datacable for my phone which appears to have a
> PL2303 chipset in it (at least that's what hotplug loaded when I plugged
> it in). However this driver doesn't appear to work... No data is
> transferred and when the software (gnokii) gives up I get an oops:
>
> Aug 31 20:05:31 spock kernel: Unable to handle kernel NULL pointer
> dereference at virtual address 00000014
> Aug 31 20:05:31 spock kernel: d48a1344
> Aug 31 20:05:31 spock kernel: *pde = 0d5e3067
> Aug 31 20:05:31 spock kernel: Oops: 0000
> Aug 31 20:05:31 spock kernel: CPU: 0
> Aug 31 20:05:31 spock kernel: EIP:
> 0010:[usbmouse:__insmod_usbmouse_O/lib/modules/2.4.20-pre5/kernel/drivers/+-302268/96]

I'm guessing thie is 2.4.20-pre5? If so can you try the following two
patches that I just sent off to Marcelo:
http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.4/usb-usbserial-2.4.20-pre5.patch
and
http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.4/usb-pl2303-2.4.20-pre5.patch

and let me know if that solves the problem for you or not?

thanks,

greg k-h

2002-09-01 21:05:49

by Tony Hoyle

[permalink] [raw]
Subject: Re: Oops in pl2303 driver

Greg KH wrote:
>
> I'm guessing thie is 2.4.20-pre5? If so can you try the following two
> patches that I just sent off to Marcelo:
> http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.4/usb-usbserial-2.4.20-pre5.patch
> and
> http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.4/usb-pl2303-2.4.20-pre5.patch
>
> and let me know if that solves the problem for you or not?
>
>
No change (new oops appended... looks the same as the old one basically)

I also tried 2.5.32 and got exactly the same oops.

To reproduce... type 'cat /dev/ttyUSB0' and hit control-C.

I have tried removing all modules except the USB serial related ones and
get exactly the same, so I think the references to 'mousedev' are bogus
in the oops (the taint is from the VMWare modules but I get the same
without them so I don't think they're affecting anything).

Tony

Sep 1 22:04:49 spock kernel: Unable to handle kernel NULL pointer
dereference at virtual address 00000014
Sep 1 22:04:49 spock kernel: d48a1344
Sep 1 22:04:49 spock kernel: *pde = 00000000
Sep 1 22:04:49 spock kernel: Oops: 0000
Sep 1 22:04:49 spock kernel: CPU: 0
Sep 1 22:04:49 spock kernel: EIP:
0010:[mousedev:__insmod_mousedev_O/lib/modules/2.4.20-pre5/kernel/drivers/+-298172/96]
Tainted: PF
Sep 1 22:04:49 spock kernel: EFLAGS: 00010087
Sep 1 22:04:49 spock kernel: eax: cf63b000 ebx: 00000000 ecx:
cf4ebc00 edx: 00000000
Sep 1 22:04:49 spock kernel: esi: cf7ad440 edi: 00000000 ebp:
00000246 esp: ce45bd80
Sep 1 22:04:49 spock kernel: ds: 0018 es: 0018 ss: 0018
Sep 1 22:04:49 spock kernel: Process cat (pid: 912, stackpage=ce45b000)
Sep 1 22:04:49 spock kernel: Stack: 00000000 cf7ad440 00000000 00000282
d48a2b10 cf7ad440 cf7ad444 cf7ad440
Sep 1 22:04:49 spock kernel: 00000286 cf7021c0 00000001 00000000
ce731400 cf70826c d48a1fe2 cf7ad440
Sep 1 22:04:49 spock kernel: cf4ebc00 ffffffff cf4ebc1c cf4ebc00
cf70826c d4891146 cf7ad440 d4920f39
Sep 1 22:04:49 spock kernel: Call Trace:
[mousedev:__insmod_mousedev_O/lib/modules/2.4.20-pre5/kernel/drivers/+-292080/96]
[mousedev:__insmod_mousedev_O/lib/modules/2.4.20-pre5/kernel/drivers/+-294942/96]
[mousedev:__insmod_mousedev_O/lib/modules/2.4.20-pre5/kernel/drivers/+-364218/96]
[<d4920f39>] [<d491a36f>]
Sep 1 22:04:49 spock kernel: [<d491a42b>] [release_dev+576/1232]
[__free_pages+27/32] [free_page_and_swap_cache+51/64] [__free_pte+64/80]
[zap_page_range+403/576]
Sep 1 22:04:49 spock kernel: Code: 8b 52 14 8b 42 e8 8b 7a ec 25 00 00
00 2f 0d 00 00 80 01 89


>>eax; cf63b000 <_end+f371cbc/14587d1c>
>>ecx; cf4ebc00 <_end+f2228bc/14587d1c>
>>esi; cf7ad440 <_end+f4e40fc/14587d1c>
>>esp; ce45bd80 <_end+e192a3c/14587d1c>

Trace; d491a42b <[parport_pc]__module_parm_verbose_probing+4cd/9fa>

Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: 8b 52 14 mov 0x14(%edx),%edx
Code; 00000003 Before first symbol
3: 8b 42 e8 mov 0xffffffe8(%edx),%eax
Code; 00000006 Before first symbol
6: 8b 7a ec mov 0xffffffec(%edx),%edi
Code; 00000009 Before first symbol
9: 25 00 00 00 2f and $0x2f000000,%eax
Code; 0000000e Before first symbol
e: 0d 00 00 80 01 or $0x1800000,%eax
Code; 00000013 Before first symbol
13: 89 00 mov %eax,(%eax)

2002-09-01 22:08:49

by Tony Hoyle

[permalink] [raw]
Subject: Re: Oops in pl2303 driver

A clue perhaps? I switch from the uhci to the usb-uhci driver and the
oops stopped happening (there were a couple of make mrproper/rebuilds in
between too).

Tony

2002-09-05 00:42:39

by Greg KH

[permalink] [raw]
Subject: Re: Oops in pl2303 driver

On Sun, Sep 01, 2002 at 11:16:27PM +0100, Tony Hoyle wrote:
> A clue perhaps? I switch from the uhci to the usb-uhci driver and the
> oops stopped happening (there were a couple of make mrproper/rebuilds in
> between too).

That makes me very suspicious. If you can reproduce it with the uhci
driver again, please let me know. I'm getting some odd reports of a
problem like this, but I'm unable to reproduce it, and others are having
a hard time too.

thanks,

greg k-h

2002-09-09 02:13:12

by Thorkild Stray

[permalink] [raw]
Subject: Re: Oops in pl2303 driver


Greg KH <[email protected]> writes:
> That makes me very suspicious. If you can reproduce it with the
> uhci driver again, please let me know. I'm getting some odd
> reports of a problem like this, but I'm unable to reproduce it, and
> others are having a hard time too.

I recently bought a BAFO BF-810 usb->serial adaptor which also
contained a pl2303 (the driver detects it as one at least). I have
exactly the same behavior as Tony Hoyle. If I use the uhci module,
it'll crash every time (I am using pilot-xfer to backup my palm for
tests). If I change to the usb-uhci driver, it works.

Currently only running 2.4.19pre9. Will try a newer kernel soon. The
driver itself has not changed between 2.4.19pre9 and 2.4.19, though.

(SMP-system).

--
Thorkild Stray, Linpro AS <[email protected]>