Commit b89fb7da authored by Wang Chen's avatar Wang Chen Committed by David S. Miller
Browse files

macvlan: Check return of dev_set_allmulti

allmulti might overflow.
Commit: "netdevice: Fix promiscuity and allmulti overflow" in net-next makes
dev_set_promiscuity/allmulti return error number if overflow happened.

Here, we check the positive increment for allmulti to get error return.
Signed-off-by: default avatarWang Chen <>
Acked-by: default avatarPatrick McHardy <>
Signed-off-by: default avatarDavid S. Miller <>
parent 7dc00c82
......@@ -189,12 +189,20 @@ static int macvlan_open(struct net_device *dev)
err = dev_unicast_add(lowerdev, dev->dev_addr, ETH_ALEN);
if (err < 0)
return err;
if (dev->flags & IFF_ALLMULTI)
dev_set_allmulti(lowerdev, 1);
goto out;
if (dev->flags & IFF_ALLMULTI) {
err = dev_set_allmulti(lowerdev, 1);
if (err < 0)
goto del_unicast;
hlist_add_head_rcu(&vlan->hlist, &port->vlan_hash[dev->dev_addr[5]]);
return 0;
dev_unicast_delete(lowerdev, dev->dev_addr, ETH_ALEN);
return err;
static int macvlan_stop(struct net_device *dev)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment