Re: [BUG] 2.6.29-rc* QinQ vlan trunking regression

From: Patrick McHardy
Date: Thu Mar 05 2009 - 02:31:46 EST


Patrick McHardy wrote:
David Miller wrote:
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Thu, 05 Mar 2009 08:12:50 +0100

We probably need both fixes to cover everything.

Yes, just the second one still crashes. I'm about to retry using both.

Here is the updated version just for the record:

vlan: Fix vlan-in-vlan crashes.

This still crashes. I'll have another look at the code.

This one combined with your patch fixes the crash. The code was calling
vlan_dev_neigh_setup recursively.

Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>

(or Tested-by: in case you want to roll it into your patch). diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 4a19acd..1b34135 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -553,7 +553,7 @@ static int vlan_dev_neigh_setup(struct net_device *dev, struct neigh_parms *pa)
int err = 0;

if (netif_device_present(real_dev) && ops->ndo_neigh_setup)
- err = ops->ndo_neigh_setup(dev, pa);
+ err = ops->ndo_neigh_setup(real_dev, pa);

return err;
}