Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09a89c21 authored by Jiri Bohac's avatar Jiri Bohac Committed by David S. Miller
Browse files

bonding: disallow enslaving a bond to itself



Enslaving a bond to itself leads to an endless loop and hangs the kernel.

Signed-off-by: default avatarJiri Bohac <jbohac@suse.cz>
Tested-by: default avatarDing Tianhong <dingtianhong@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ee6154e1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1197,6 +1197,11 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
		return -EBUSY;
	}

	if (bond_dev == slave_dev) {
		pr_err("%s: cannot enslave bond to itself.\n", bond_dev->name);
		return -EPERM;
	}

	/* vlan challenged mutual exclusion */
	/* no need to lock since we're protected by rtnl_lock */
	if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {