aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/macvlan.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r--drivers/net/macvlan.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 9bf46bd19b87..cc9845ec91c1 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -828,22 +828,21 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev,
828 eth_hw_addr_inherit(dev, lowerdev); 828 eth_hw_addr_inherit(dev, lowerdev);
829 } 829 }
830 830
831 port->count += 1;
832 err = register_netdevice(dev);
833 if (err < 0)
834 goto destroy_port;
835
831 err = netdev_upper_dev_link(lowerdev, dev); 836 err = netdev_upper_dev_link(lowerdev, dev);
832 if (err) 837 if (err)
833 goto destroy_port; 838 goto destroy_port;
834 839
835 port->count += 1;
836 err = register_netdevice(dev);
837 if (err < 0)
838 goto upper_dev_unlink;
839 840
840 list_add_tail_rcu(&vlan->list, &port->vlans); 841 list_add_tail_rcu(&vlan->list, &port->vlans);
841 netif_stacked_transfer_operstate(lowerdev, dev); 842 netif_stacked_transfer_operstate(lowerdev, dev);
842 843
843 return 0; 844 return 0;
844 845
845upper_dev_unlink:
846 netdev_upper_dev_unlink(lowerdev, dev);
847destroy_port: 846destroy_port:
848 port->count -= 1; 847 port->count -= 1;
849 if (!port->count) 848 if (!port->count)