2000-12-13 15:34:52

by Devik

[permalink] [raw]
Subject: test12 oops with NF+ping -s 1500

Hello,

I just tried to narrow problem with DFE530 card and found
another (rather fatal) bug in 2.4.0-test12.
I attached both my config and ksymoops output. It seems
that ip_defrag is called with skb where skb->dev is NULL.
It then crashes in ip_queue_frag.
I can trigger it regulary by ping -s 1500 some_ip (to
ping thru ethernet iff) on two computers.
Please cc me in replies to [email protected].

thanks, devik


Attachments:
nfoops (24.15 kB)
ksymoops file
.config (13.58 kB)
config file
Download all attachments

2000-12-14 13:40:51

by Russell King

[permalink] [raw]
Subject: Re: test12 oops with NF+ping -s 1500

Devik writes:
> I just tried to narrow problem with DFE530 card and found
> another (rather fatal) bug in 2.4.0-test12.
> I attached both my config and ksymoops output. It seems
> that ip_defrag is called with skb where skb->dev is NULL.
> It then crashes in ip_queue_frag.
> I can trigger it regulary by ping -s 1500 some_ip (to
> ping thru ethernet iff) on two computers.
> Please cc me in replies to [email protected].

Linus,

How about we kill these recursive oopsen by changing the
printk("Aiee, killing interrupt handler") to a panic? If we're
entering do_exit() from an interrupt, we will eventually enter
schedule(), again as an interrupt, which will BUG(), and then
we'll repeat ad-infinitum.

panic() is better since we break this fatal recursive oops loop,
and we also get the additional advantage that a machine with
"panic=60" set will recover.

Currently, you hit this recursive oops problem, and its game over
until reset (unless you have a hardware watchdog).
_____
|_____| ------------------------------------------------- ---+---+-
| | Russell King [email protected] --- ---
| | | | http://www.arm.linux.org.uk/personal/aboutme.html / / |
| +-+-+ --- -+-
/ | THE developer of ARM Linux |+| /|\
/ | | | --- |
+-+-+ ------------------------------------------------- /\\\ |