Subject: Re: [2.6.33-rc5 regression] NULL pointer dereference in vlan_skb_recv - probably introduced by commit 9793241fe92f7d9303fb221e43fc598eb065f267

From: Eric Dumazet <[email-masked]>
Date: Sun, 24 Jan 2010 14:42:54 +0100

Le 23/01/2010 22:31, Bruno Prémont a écrit :
>> Above part of code did change between 2.6.32 and 2.6.33-rc5 with
>> commit 9793241fe92f7d9303fb221e43fc598eb065f267 (vlan: Precise RX
>> stats accounting)
>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9793241fe92f7d9303fb221e43fc598eb065f267
> 
> Reverting just that commit gets the system running correctly.
> 
> Bruno

I have no idea how this patch can break vlan networking.

Your disassembly and .config seems to show your machine is not SMP

Maybe something is broken on UP and alloc_percpu() ?

Could you add a debug in vlan_dev_init()

 	vlan_dev_info(dev)->vlan_rx_stats = alloc_percpu(struct vlan_rx_stats);
	if (!vlan_dev_info(dev)->vlan_rx_stats)
 	return -ENOMEM;
+	pr_err("vlan_dev_init() rx_stats=%p\n", vlan_dev_info(dev)->vlan_rx_stats);

This make sure vlan_dev_init() is called and percpu allocation is properly done.

Thanks