diff options
Diffstat (limited to 'drivers/net/macvlan.c')
| -rw-r--r-- | drivers/net/macvlan.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 40faa368b07a..9a939d828b47 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
| @@ -282,7 +282,7 @@ static int macvlan_open(struct net_device *dev) | |||
| 282 | if (macvlan_addr_busy(vlan->port, dev->dev_addr)) | 282 | if (macvlan_addr_busy(vlan->port, dev->dev_addr)) | 
| 283 | goto out; | 283 | goto out; | 
| 284 | 284 | ||
| 285 | err = dev_unicast_add(lowerdev, dev->dev_addr); | 285 | err = dev_uc_add(lowerdev, dev->dev_addr); | 
| 286 | if (err < 0) | 286 | if (err < 0) | 
| 287 | goto out; | 287 | goto out; | 
| 288 | if (dev->flags & IFF_ALLMULTI) { | 288 | if (dev->flags & IFF_ALLMULTI) { | 
| @@ -294,7 +294,7 @@ static int macvlan_open(struct net_device *dev) | |||
| 294 | return 0; | 294 | return 0; | 
| 295 | 295 | ||
| 296 | del_unicast: | 296 | del_unicast: | 
| 297 | dev_unicast_delete(lowerdev, dev->dev_addr); | 297 | dev_uc_del(lowerdev, dev->dev_addr); | 
| 298 | out: | 298 | out: | 
| 299 | return err; | 299 | return err; | 
| 300 | } | 300 | } | 
| @@ -308,7 +308,7 @@ static int macvlan_stop(struct net_device *dev) | |||
| 308 | if (dev->flags & IFF_ALLMULTI) | 308 | if (dev->flags & IFF_ALLMULTI) | 
| 309 | dev_set_allmulti(lowerdev, -1); | 309 | dev_set_allmulti(lowerdev, -1); | 
| 310 | 310 | ||
| 311 | dev_unicast_delete(lowerdev, dev->dev_addr); | 311 | dev_uc_del(lowerdev, dev->dev_addr); | 
| 312 | 312 | ||
| 313 | macvlan_hash_del(vlan); | 313 | macvlan_hash_del(vlan); | 
| 314 | return 0; | 314 | return 0; | 
| @@ -332,11 +332,11 @@ static int macvlan_set_mac_address(struct net_device *dev, void *p) | |||
| 332 | if (macvlan_addr_busy(vlan->port, addr->sa_data)) | 332 | if (macvlan_addr_busy(vlan->port, addr->sa_data)) | 
| 333 | return -EBUSY; | 333 | return -EBUSY; | 
| 334 | 334 | ||
| 335 | err = dev_unicast_add(lowerdev, addr->sa_data); | 335 | err = dev_uc_add(lowerdev, addr->sa_data); | 
| 336 | if (err) | 336 | if (err) | 
| 337 | return err; | 337 | return err; | 
| 338 | 338 | ||
| 339 | dev_unicast_delete(lowerdev, dev->dev_addr); | 339 | dev_uc_del(lowerdev, dev->dev_addr); | 
| 340 | 340 | ||
| 341 | macvlan_hash_change_addr(vlan, addr->sa_data); | 341 | macvlan_hash_change_addr(vlan, addr->sa_data); | 
| 342 | } | 342 | } | 
| @@ -748,6 +748,9 @@ static int macvlan_device_event(struct notifier_block *unused, | |||
| 748 | list_for_each_entry_safe(vlan, next, &port->vlans, list) | 748 | list_for_each_entry_safe(vlan, next, &port->vlans, list) | 
| 749 | vlan->dev->rtnl_link_ops->dellink(vlan->dev, NULL); | 749 | vlan->dev->rtnl_link_ops->dellink(vlan->dev, NULL); | 
| 750 | break; | 750 | break; | 
| 751 | case NETDEV_PRE_TYPE_CHANGE: | ||
| 752 | /* Forbid underlaying device to change its type. */ | ||
| 753 | return NOTIFY_BAD; | ||
| 751 | } | 754 | } | 
| 752 | return NOTIFY_DONE; | 755 | return NOTIFY_DONE; | 
| 753 | } | 756 | } | 
