diff options
author | Mark Brown <broonie@linaro.org> | 2013-09-15 13:43:21 +0100 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-09-15 13:43:21 +0100 |
commit | 4ed4d44eb2192604716226a6f0edad02ab76101f (patch) | |
tree | 74c2a4041e46b906d89c5880b9cdeb5d768827c4 /drivers/net/bonding/bond_main.c | |
parent | cb03293a043ab9bda850fe143062bd304a9e2376 (diff) | |
parent | 410dbb746130bc052bb3c7a337a86252874adbdf (diff) |
Merge tag 'v3.10.12' into linux-linaro-lsklsk-13.09
This is the 3.10.12 stable release
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index f97569613526..666cf3a49b6d 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -3770,11 +3770,17 @@ static int bond_neigh_init(struct neighbour *n) * The bonding ndo_neigh_setup is called at init time beofre any * slave exists. So we must declare proxy setup function which will * be used at run time to resolve the actual slave neigh param setup. + * + * It's also called by master devices (such as vlans) to setup their + * underlying devices. In that case - do nothing, we're already set up from + * our init. */ static int bond_neigh_setup(struct net_device *dev, struct neigh_parms *parms) { - parms->neigh_setup = bond_neigh_init; + /* modify only our neigh_parms */ + if (parms->dev == dev) + parms->neigh_setup = bond_neigh_init; return 0; } |