mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Stefan Burkei" <stefan@burkei.de>
To: "'@Linux Kernel Miller, David S.'" <davem@redhat.com>,
	"'@Linux Kernel Ostrowski, Michal'" <mostrows@us.ibm.com>
Cc: "'@Linux Kernel Mailingliste'" <linux-kernel@vger.kernel.org>
Subject: oops in skbuff.c
Date: Fri, 3 Aug 2001 23:40:44 +0200	[thread overview]
Message-ID: <000001c11c64$f3bc5d40$3100000a@sb> (raw)

Hi,

I'm using Kernel 2.4.7 (i think with the actual
pppoe-patches 0.6.8) and it still oopses on the
same place - in the routine skb_drop_fraglist.

My Linux-Box acts as a NAT-Router to the Internet
for my Win98-Clients with a german DSL-Connection
using pppoe with pppd 2.4.1.
With pppd 2.4.0 the result is the same.

The problem appears with Kernel 2.4.4 and
is always reproducable since then.
I start on my Win98-Box the Gnutella-Client
BearShare and don't have to wait longer
than 10 sec. until the machine crashes.

I figured out, that the kernel attempts to free
a fraglist in the routine skb_drop_fraglist with
an invalid pointer to it.
During one pppd-session this "pointer" has
always the same (i think) false value. The
high word is always zero and the low word doesn't
change during one online session of pppd.
The low word will have a new value on the next
dialup of pppd. Again - this value stays in place
until the pppd hangs up.

I use a short code fragment to check this invalid
pointer and, if detected, jumps over the kfree-routine.
This isn't a really patch, because the real error wasn't
corrected - but the kernel remains stable since then.

This here is my skb_drop_fraglist-routine:

static void skb_drop_fraglist(struct sk_buff *skb)
{
        struct sk_buff *list = skb_shinfo(skb)->frag_list;

        skb_shinfo(skb)->frag_list = NULL;

        if ((unsigned long)list & 0xffff0000) {
            do {
                    struct sk_buff *this = list;
                    list = list->next;
                    kfree_skb(this);
            } while (list);
        } else
            printk(KERN_WARNING "Warning: skb_drop_fraglist() \
	    invalid pointer detected: %08lx.\n", (unsigned long)list);
}


I hope I can give you two a hint on your bug-hunting.

ciao - stebu


             reply	other threads:[~2001-08-03 21:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-03 21:40 Stefan Burkei [this message]
2001-08-04  9:30 ` Martin Josefsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000001c11c64$f3bc5d40$3100000a@sb' \
    --to=stefan@burkei.de \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mostrows@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®