lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090521.152439.79009648.davem@davemloft.net>
Date:	Thu, 21 May 2009 15:24:39 -0700 (PDT)
From:	David Miller <davem@...emloft.net>
To:	buytenh@...tstofly.org
Cc:	mike@...loops.com, afleming@...escale.com,
	linux-kernel@...r.kernel.org, rjw@...k.pl
Subject: Re: [BUG] 2.6.30-rc4: Kernel BUG under network load with gianfar

From: Lennert Buytenhek <buytenh@...tstofly.org>
Date: Wed, 20 May 2009 23:47:34 +0200

> gianfar puts skbuffs that are in the rx ring back onto the recycle
> list if there was a receive error, but this breaks the following
> invariant: that all skbuffs on the recycle list have skb->data =
> skb->head + NET_SKB_PAD (NET_SKB_PAD being 32 for you).
> 
> In this case, the skb's ->data will be skb->head + RXBUF_ALIGNMENT
> (where RXBUF_ALIGNMENT is 64) when it is put onto the recycle list.
> And when gfar_new_skb() picks this skb off the recycle list again,
> it'll do:
> 
>         alignamount = RXBUF_ALIGNMENT -
>                 (((unsigned long) skb->data) & (RXBUF_ALIGNMENT - 1));
> 
>         /* We need the data buffer to be aligned properly.  We will reserve
>          * as many bytes as needed to align the data properly
>          */
>         skb_reserve(skb, alignamount);
> 
> So now skb->data will be skb->head + 128, and there won't be enough
> space between skb->head and skb->end to hold a full-sized packet.
> 
> Something like the patch below would fix it.

Let me know when a final, tested, version of this patch is available
and please make sure it makes it to netdev@...r.kernel.org

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ