From: Vladislav Yasevich <[email protected]> Date: Sat, 2 May 2015 21:33:44 -0400
> The code in __netdev_upper_dev_link() has an over-stringent > loop detection logic that actually prevents valid configurations > from working correctly. > > In particular, the logic returns an error if an upper device > is already in the list of all upper devices for a given dev. > This particular check seems to be a overzealous as it disallows > perfectly valid configurations. For example: > # ip l a link eth0 name eth0.10 type vlan id 10 > # ip l a dev br0 typ bridge > # ip l s eth0.10 master br0 > # ip l s eth0 master br0 <--- Will fail > > If you switch the last two commands (add eth0 first), then both > will succeed. If after that, you remove eth0 and try to re-add > it, it will fail! > > It appears to be enough to simply check adj_list to keeps things > safe. > > I've tried stacking multiple devices multiple times in all different > combinations, and either rx_handler registration prevented the stacking > of the device linking cought the error. > > Signed-off-by: Vladislav Yasevich <[email protected]> Applied, thanks Vlad. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
