diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 87e67194f240..dc9f9c4dcb49 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -2903,7 +2903,7 @@ static int do_setlink(const struct sk_buff *skb, goto errout; } - if (tb[IFLA_MASTER]) { + if (tb[IFLA_MASTER] && !(dev->flags & IFF_UP)) { err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); if (err) goto errout;