[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1364310900.1716.21.camel@edumazet-glaptop>
Date: Tue, 26 Mar 2013 08:15:00 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: David Oostdyk <daveo@...mit.edu>
Cc: netdev@...r.kernel.org, macro@...ux-mips.org
Subject: Re: defxx: skb_push() failing?
On Tue, 2013-03-26 at 10:29 -0400, David Oostdyk wrote:
> Hello,
>
> In dfx_xmt_queue_pkt() in defxx.c, there is a skb_push(3) call which
> makes room for 3 packet request header bytes. There is some discussion
> in the driver explaining why those three bytes will be available. I
> have an old FDDI card that I'm trying to bring up:
>
> 05:05.0 FDDI network controller: Digital Equipment Corporation
> PCI-to-PDQ Interface Chip [PFI] (rev 02)
>
> Most skbuffs that come through dfx_xmit_queue_pkt() have 11 bytes
> between skb->head and skb->data. On the other hand, at almost exactly
> 60-second intervals, an skb arrives that has zero bytes between
> skb->head and skb->data. This normally causes a kernel panic, and for
> the time I just skip over such skb's.
>
> Does anyone have advice on where I should start digging to find the
> cause of this?
>
Have you read comments in defxx.c file around line 151 ?
If one skb arrives with not enough headroom, you could add a
WARN_ON_ONCE(skb_headroom(skb) < 3);
and report stack trace so that we can identify and fix the caller.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists