mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-11 11:38:20 +07:00
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: Wang Chen <wangchen@cn.fujitsu.com> Acked-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7dc00c82cb
commit
b89fb7da2f
@ -189,12 +189,20 @@ static int macvlan_open(struct net_device *dev)
|
|||||||
|
|
||||||
err = dev_unicast_add(lowerdev, dev->dev_addr, ETH_ALEN);
|
err = dev_unicast_add(lowerdev, dev->dev_addr, ETH_ALEN);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
goto out;
|
||||||
if (dev->flags & IFF_ALLMULTI)
|
if (dev->flags & IFF_ALLMULTI) {
|
||||||
dev_set_allmulti(lowerdev, 1);
|
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]]);
|
hlist_add_head_rcu(&vlan->hlist, &port->vlan_hash[dev->dev_addr[5]]);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
del_unicast:
|
||||||
|
dev_unicast_delete(lowerdev, dev->dev_addr, ETH_ALEN);
|
||||||
|
out:
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int macvlan_stop(struct net_device *dev)
|
static int macvlan_stop(struct net_device *dev)
|
||||||
|
Loading…
Reference in New Issue
Block a user