2003-08-12 06:42:24

by Gabor Z. Papp

[permalink] [raw]
Subject: PPPoE Oops with 2.4.22-rc

I'm getting Oopses at reboots while pppoe module loaded.

Linux 2.4.22-pre* and -rc*
pppd version 2.4.2b3

The ksymoops output attached, more details at
http://gzp.odpn.net/tmp/linux-pppoe-oops/

ksymoops 2.4.9 on i686 2.4.22-rc2-gzp1. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.22-rc2-gzp1/ (default)
-m /usr/src/linux/System.map (default)

Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.

Oops: 0002
CPU: 0
EIP: 0010:[<e0ed9bce>] Tainted: PF
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: ddf0ba20 ebx: ddf843c0 ecx: c02747a8 edx: 00000000
esi: ddf0ba20 edi: 00000000 ebp: dd697ef4 esp: dd697ebc
ds: 0018 es: 0018 ss: 0018
Process pppd (pid: 387, stackpage=dd697000)
Stack: 00008229 ddf0ba4a dd697ef4 0000001e dd6a1980 dd697ef4 0000001e bffffd28
c01cb4cd dd6a1980 dd697ef4 0000001e 00000002 00000000 00000018 00000000
ecc10400 74658784 fc003168 00004015 04090000 dd790000 08086094 00000001
Call Trace: [<c01cb4cd>] [<c01495bd>] [<c01cbfc5>] [<c010744f>]
Code: ff 8a e8 00 00 00 0f 94 c0 84 c0 75 24 c7 44 24 08 60 00 00


>>EIP; e0ed9bce <[pppoe]pppoe_connect+1ce/220> <=====

>>eax; ddf0ba20 <_end+1dc76630/20610c70>
>>ebx; ddf843c0 <_end+1dceefd0/20610c70>
>>ecx; c02747a8 <irq_stat+8/20>
>>esi; ddf0ba20 <_end+1dc76630/20610c70>
>>ebp; dd697ef4 <_end+1d402b04/20610c70>
>>esp; dd697ebc <_end+1d402acc/20610c70>

Trace; c01cb4cd <sys_connect+7d/b0>
Trace; c01495bd <fcntl_setlk+8d/1d0>
Trace; c01cbfc5 <sys_socketcall+b5/270>
Trace; c010744f <system_call+33/38>

Code; e0ed9bce <[pppoe]pppoe_connect+1ce/220>
00000000 <_EIP>:
Code; e0ed9bce <[pppoe]pppoe_connect+1ce/220> <=====
0: ff 8a e8 00 00 00 decl 0xe8(%edx) <=====
Code; e0ed9bd4 <[pppoe]pppoe_connect+1d4/220>
6: 0f 94 c0 sete %al
Code; e0ed9bd7 <[pppoe]pppoe_connect+1d7/220>
9: 84 c0 test %al,%al
Code; e0ed9bd9 <[pppoe]pppoe_connect+1d9/220>
b: 75 24 jne 31 <_EIP+0x31> e0ed9bff <[pppoe]pppoe_connect+1ff/220>
Code; e0ed9bdb <[pppoe]pppoe_connect+1db/220>
d: c7 44 24 08 60 00 00 movl $0x60,0x8(%esp,1)
Code; e0ed9be2 <[pppoe]pppoe_connect+1e2/220>
14: 00


1 warning issued. Results may not be reliable.


2003-08-12 17:14:08

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: PPPoE Oops with 2.4.22-rc



On Tue, 12 Aug 2003, Gabor Z. Papp wrote:

> I'm getting Oopses at reboots while pppoe module loaded.
>
> Linux 2.4.22-pre* and -rc*
> pppd version 2.4.2b3
>
> The ksymoops output attached, more details at
> http://gzp.odpn.net/tmp/linux-pppoe-oops/
>
> ksymoops 2.4.9 on i686 2.4.22-rc2-gzp1. Options used
> -V (default)
> -k /proc/ksyms (default)
> -l /proc/modules (default)
> -o /lib/modules/2.4.22-rc2-gzp1/ (default)
> -m /usr/src/linux/System.map (default)
>
> Warning: You did not tell me where to find symbol information. I will
> assume that the log matches the kernel and modules that are running
> right now and I'll use the default options above for symbol resolution.
> If the current kernel and/or modules do not match the log, you can get
> more accurate output by telling me the kernel version and where to find
> map, modules, ksyms etc. ksymoops -h explains the options.
>
> Oops: 0002
> CPU: 0
> EIP: 0010:[<e0ed9bce>] Tainted: PF

Why is your kernel tainted?

Are you using stock 2.4.22-rc2 or do you have any additional
patches/modules running?

2003-08-12 17:42:42

by Gabor Z. Papp

[permalink] [raw]
Subject: Re: PPPoE Oops with 2.4.22-rc

* Marcelo Tosatti <[email protected]>:

|> The ksymoops output attached, more details at
|> http://gzp.odpn.net/tmp/linux-pppoe-oops/

[...]

|> EIP: 0010:[<e0ed9bce>] Tainted: PF
|
| Why is your kernel tainted?
|
| Are you using stock 2.4.22-rc2 or do you have any additional
| patches/modules running?

Stock 2.4.22-rc2 with alsa, and I'm using a binary only
module for my webcam from http://www.smcc.demon.nl/webcam/

BUT, I'm getting the oopses *without* the module loaded in.
Its loaded at startup, thats why tainted later.

I can reproduce the oops all the time, with or without the module.

2003-08-12 18:05:42

by Gabor Z. Papp

[permalink] [raw]
Subject: Re: PPPoE Oops with 2.4.22-rc

* Marcelo Tosatti <[email protected]>:

|> EIP: 0010:[<e0ed9bce>] Tainted: PF
|
| Why is your kernel tainted?

As your request I have reproduced the oops without alsa and
webcam modules loaded in:

http://gzp.odpn.net/tmp/linux-pppoe-oops/dmesg-stock-2.4.22-rc2
http://gzp.odpn.net/tmp/linux-pppoe-oops/ksymoops-stock-2.4.22-rc2

ksymoops 2.4.9 on i686 2.4.22-rc2-gzp1. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.22-rc2-gzp1/ (default)
-m /usr/src/linux/System.map (default)

Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.

Oops: 0002
CPU: 0
EIP: 0010:[<e095ebce>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: de1647a0 ebx: de0e13c0 ecx: c02747a8 edx: 00000000
esi: de1647a0 edi: 00000000 ebp: ddfc7ef4 esp: ddfc7ebc
ds: 0018 es: 0018 ss: 0018
Process pppd (pid: 366, stackpage=ddfc7000)
Stack: 0000a247 de1647ca ddfc7ef4 0000001e ddfcb5c0 ddfc7ef4 0000001e bffffd28
c01cb4cd ddfcb5c0 ddfc7ef4 0000001e 00000002 00000000 00000018 00000000
ecc10400 74658784 fc003168 00004015 04090000 de0c0000 08086094 00000001
Call Trace: [<c01cb4cd>] [<c01495bd>] [<c01cbfc5>] [<c010744f>]
Code: ff 8a e8 00 00 00 0f 94 c0 84 c0 75 24 c7 44 24 08 60 00 00


>>EIP; e095ebce <[pppoe]pppoe_connect+1ce/220> <=====

>>eax; de1647a0 <_end+1decf3b0/20610c70>
>>ebx; de0e13c0 <_end+1de4bfd0/20610c70>
>>ecx; c02747a8 <irq_stat+8/20>
>>esi; de1647a0 <_end+1decf3b0/20610c70>
>>ebp; ddfc7ef4 <_end+1dd32b04/20610c70>
>>esp; ddfc7ebc <_end+1dd32acc/20610c70>

Trace; c01cb4cd <sys_connect+7d/b0>
Trace; c01495bd <fcntl_setlk+8d/1d0>
Trace; c01cbfc5 <sys_socketcall+b5/270>
Trace; c010744f <system_call+33/38>

Code; e095ebce <[pppoe]pppoe_connect+1ce/220>
00000000 <_EIP>:
Code; e095ebce <[pppoe]pppoe_connect+1ce/220> <=====
0: ff 8a e8 00 00 00 decl 0xe8(%edx) <=====
Code; e095ebd4 <[pppoe]pppoe_connect+1d4/220>
6: 0f 94 c0 sete %al
Code; e095ebd7 <[pppoe]pppoe_connect+1d7/220>
9: 84 c0 test %al,%al
Code; e095ebd9 <[pppoe]pppoe_connect+1d9/220>
b: 75 24 jne 31 <_EIP+0x31> e095ebff <[pppoe]pppoe_connect+1ff/220>
Code; e095ebdb <[pppoe]pppoe_connect+1db/220>
d: c7 44 24 08 60 00 00 movl $0x60,0x8(%esp,1)
Code; e095ebe2 <[pppoe]pppoe_connect+1e2/220>
14: 00


1 warning issued. Results may not be reliable.


2003-08-12 18:31:13

by Gabor Z. Papp

[permalink] [raw]
Subject: Re: PPPoE Oops with 2.4.22-rc

I have found a host where same happend with 2.4.19
and there are no tainted kernels at all.

http://gzp.odpn.net/tmp/linux-pppoe-oops/2.4.19/

2003-08-22 13:43:47

by Marcus Sundberg

[permalink] [raw]
Subject: [PATCH] Re: PPPoE Oops with 2.4.22-rc

Hi,

this patch fixes one crash in pppoe_connect():

--- linux-2.4.21-rc2/drivers/net/pppoe.c~ Wed May 14 00:08:52 2003
+++ linux-2.4.21-rc2/drivers/net/pppoe.c Wed May 14 00:18:47 2003
@@ -606,7 +606,8 @@
/* Delete the old binding */
delete_item(po->pppoe_pa.sid,po->pppoe_pa.remote);

- dev_put(po->pppoe_dev);
+ if (po->pppoe_dev)
+ dev_put(po->pppoe_dev);

memset(po, 0, sizeof(struct pppox_opt));
po->sk = sk;

//Marcus
--
---------------------------------------+--------------------------
Marcus Sundberg <[email protected]> | Firewalls with SIP & NAT
Firewall Developer, Ingate Systems AB | http://www.ingate.com/

2003-08-22 16:56:00

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] Re: PPPoE Oops with 2.4.22-rc

On 22 Aug 2003 15:43:01 +0200
Marcus Sundberg <[email protected]> wrote:

> this patch fixes one crash in pppoe_connect():

It's already in Marcelo's tree.

2003-08-22 20:55:59

by Junio C Hamano

[permalink] [raw]
Subject: Re: [PATCH] Re: PPPoE Oops with 2.4.22-rc

>>>>> "MS" == Marcus Sundberg <[email protected]> writes:

MS> this patch fixes one crash in pppoe_connect():

--- linux-2.4.21-rc2/drivers/net/pppoe.c~ Wed May 14 00:08:52 2003
+++ linux-2.4.21-rc2/drivers/net/pppoe.c Wed May 14 00:18:47 2003
@@ -606,7 +606,8 @@
/* Delete the old binding */
delete_item(po->pppoe_pa.sid,po->pppoe_pa.remote);

- dev_put(po->pppoe_dev);
+ if (po->pppoe_dev)
+ dev_put(po->pppoe_dev);

memset(po, 0, sizeof(struct pppox_opt));
po->sk = sk;

Could you explain when/how pppoe_connect gets called with
(pppoe_dev == NULL) but with an old binding?

2003-08-22 21:13:08

by Marcus Sundberg

[permalink] [raw]
Subject: Re: [PATCH] Re: PPPoE Oops with 2.4.22-rc

Junio C Hamano <[email protected]> writes:

> >>>>> "MS" == Marcus Sundberg <[email protected]> writes:
>
> MS> this patch fixes one crash in pppoe_connect():
>
> --- linux-2.4.21-rc2/drivers/net/pppoe.c~ Wed May 14 00:08:52 2003
> +++ linux-2.4.21-rc2/drivers/net/pppoe.c Wed May 14 00:18:47 2003
> @@ -606,7 +606,8 @@
> /* Delete the old binding */
> delete_item(po->pppoe_pa.sid,po->pppoe_pa.remote);
>
> - dev_put(po->pppoe_dev);
> + if (po->pppoe_dev)
> + dev_put(po->pppoe_dev);
>
> memset(po, 0, sizeof(struct pppox_opt));
> po->sk = sk;
>
> Could you explain when/how pppoe_connect gets called with
> (pppoe_dev == NULL) but with an old binding?

I triggered it by doing 'ifconfig down' on the underlying ethernet
device. It's possible there are other ways to trigger it also. When
I made the fix I just looked at where the oops occured.

//Marcus
--
---------------------------------------+--------------------------
Marcus Sundberg <[email protected]> | Firewalls with SIP & NAT
Firewall Developer, Ingate Systems AB | http://www.ingate.com/

2003-08-25 12:57:17

by Greg Stark

[permalink] [raw]
Subject: Re: [PATCH] Re: PPPoE Oops with 2.4.22-rc


Marcus Sundberg <[email protected]> writes:

> I triggered it by doing 'ifconfig down' on the underlying ethernet
> device. It's possible there are other ways to trigger it also.

Thank you. This has been a bug for a little while. I reported it with 2.4.20 a
few months ago.


--
greg