[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <93d1fdd10903091218g17d65ea2r89a9b2a50fae7f11@mail.gmail.com>
Date: Mon, 9 Mar 2009 14:18:24 -0500
From: Ron Yorgason <yorgasor@...il.com>
To: Eric Dumazet <dada1@...mosbay.com>
Cc: netdev@...r.kernel.org
Subject: Re: Kernel Oops in UDP w/ ARM architecture
On Mon, Mar 9, 2009 at 1:21 PM, Eric Dumazet <dada1@...mosbay.com> wrote:
> Please dont top post on this mailing list
>
> Ron Yorgason a écrit :
>> We're using the fec driver, found in drivers/net/fec.c. I modified
>> this driver slightly to get the MAC address from the redboot
>> configuration stored in flash memory, but it's otherwise untouched. I
>> can send my version of the file if that would help.
>>
>> --Ron
>>
>>
>
> Given that ARM seems to be picky about non aligned accesses, you might
> try this patch. This should force IP header to be aligned.
>
> diff -u linux-2.6.19/drivers/net/fec.c.old linux-2.6.19/drivers/net/fec.c
> --- linux-2.6.19/drivers/net/fec.c.old
> +++ linux-2.6.19/drivers/net/fec.c
> @@ -641,13 +641,14 @@
> * include that when passing upstream as it messes up
> * bridging applications.
> */
> - skb = dev_alloc_skb(pkt_len-4);
> + skb = dev_alloc_skb((pkt_len - 4) + 2);
>
> if (skb == NULL) {
> printk("%s: Memory squeeze, dropping packet.\n", dev->name);
> fep->stats.rx_dropped++;
> } else {
> skb->dev = dev;
> + skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */
> skb_put(skb,pkt_len-4); /* Make room */
> eth_copy_and_sum(skb, data, pkt_len-4, 0);
> skb->protocol=eth_type_trans(skb,dev);
>
>
Thanks for the patch. It looks like Freescale modified this section
of the code in our BSP, so I'm looking at how to best merge things in.
Also, since we're allocating an extra 2 bytes in dev_alloc_skb(), do
we need to account for those bytes in skb_put() and
eth_copy_and_sum(), or does the skb_reserve() call handle that?
Ron
--
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