From: Patrick McHardy Date: Fri, 11 Jan 2008 06:39:28 +0000 (-0800) Subject: [MACVLAN]: Prevent nesting macvlan devices X-Git-Tag: v2.6.24-rc8~7^2~4 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=a6ca5f1dbe40470fcb1ecc921769d792a1e77ed9;p=~shefty%2Frdma-dev.git [MACVLAN]: Prevent nesting macvlan devices Don't allow to nest macvlan devices since it will cause lockdep warnings and isn't really useful for anything. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 2e4bcd5654c..e8dc2f44fec 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -384,6 +384,13 @@ static int macvlan_newlink(struct net_device *dev, if (lowerdev == NULL) return -ENODEV; + /* Don't allow macvlans on top of other macvlans - its not really + * wrong, but lockdep can't handle it and its not useful for anything + * you couldn't do directly on top of the real device. + */ + if (lowerdev->rtnl_link_ops == dev->rtnl_link_ops) + return -ENODEV; + if (!tb[IFLA_MTU]) dev->mtu = lowerdev->mtu; else if (dev->mtu > lowerdev->mtu)