Le mercredi 08 juin 2011 Ã 08:18 +0800, Brad Campbell a Ãcrit : > On 08/06/11 06:57, Patrick McHardy wrote: > > On 07.06.2011 20:31, Eric Dumazet wrote: > >> Le mardi 07 juin 2011 Ã 17:35 +0200, Patrick McHardy a Ãcrit : > >> > >>> The main suspects would be NAT and TCPMSS. Did you also try whether > >>> the crash occurs with only one of these these rules? > >>> > >>>> I've just compiled out CONFIG_BRIDGE_NETFILTER and can no longer access > >>>> the address the way I was doing it, so that's a no-go for me. > >>> > >>> That's really weird since you're apparently not using any bridge > >>> netfilter features. It shouldn't have any effect besides changing > >>> at which point ip_tables is invoked. How are your network devices > >>> configured (specifically any bridges)? > >> > >> Something in the kernel does > >> > >> u16 *ptr = addr (given by kmalloc()) > >> > >> ptr[-1] = 0; > >> > >> Could be an off-one error in a memmove()/memcopy() or loop... > >> > >> I cant see a network issue here. > > > > So far me neither, but netfilter appears to trigger the bug. > > Would it help if I tried some older kernels? This issue only surfaced > for me recently as I only installed the VM's in question about 12 weeks > ago and have only just started really using them in anger. I could try > reproducing it on progressively older kernels to see if I can find one > that works and then bisect from there. Well, a bisection definitely should help, but needs a lot of time in your case. Could you try following patch, because this is the 'usual suspect' I had yesterday : diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 46cbd28..9f548f9 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -792,6 +792,7 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, fastpath = atomic_read(&skb_shinfo(skb)->dataref) == delta; } +#if 0 if (fastpath && size + sizeof(struct skb_shared_info) <= ksize(skb->head)) { memmove(skb->head + size, skb_shinfo(skb), @@ -802,7 +803,7 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, off = nhead; goto adjust_others; } - +#endif data = kmalloc(size + sizeof(struct skb_shared_info), gfp_mask); if (!data) goto nodata; -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html