diff options
author | Petr Machata <petrm@mellanox.com> | 2018-12-06 12:05:36 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-06 16:26:06 -0500 |
commit | 00f54e68924eaf075f3f24be18557899d347bc4a (patch) | |
tree | fa59ed2835386585396ebba68aecd4dd6350362f | |
parent | fdb8b298676a39b660d10c6dcaaf5b702f811009 (diff) |
net: core: dev: Add extack argument to dev_open()
In order to pass extack together with NETDEV_PRE_UP notifications, it's
necessary to route the extack to __dev_open() from diverse (possibly
indirect) callers. One prominent API through which the notification is
invoked is dev_open().
Therefore extend dev_open() with and extra extack argument and update
all users. Most of the calls end up just encoding NULL, but bond and
team drivers have the extack readily available.
Signed-off-by: Petr Machata <petrm@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
23 files changed, 30 insertions, 29 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 333387f1f1fe..6b34dbefa7dd 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -1538,7 +1538,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, | |||
1538 | slave_dev->flags |= IFF_SLAVE; | 1538 | slave_dev->flags |= IFF_SLAVE; |
1539 | 1539 | ||
1540 | /* open the slave since the application closed it */ | 1540 | /* open the slave since the application closed it */ |
1541 | res = dev_open(slave_dev); | 1541 | res = dev_open(slave_dev, extack); |
1542 | if (res) { | 1542 | if (res) { |
1543 | netdev_dbg(bond_dev, "Opening slave %s failed\n", slave_dev->name); | 1543 | netdev_dbg(bond_dev, "Opening slave %s failed\n", slave_dev->name); |
1544 | goto err_restore_mac; | 1544 | goto err_restore_mac; |
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c index a5fd71692c8b..43b42615ad84 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c | |||
@@ -525,7 +525,7 @@ static int aq_set_ringparam(struct net_device *ndev, | |||
525 | } | 525 | } |
526 | } | 526 | } |
527 | if (ndev_running) | 527 | if (ndev_running) |
528 | err = dev_open(ndev); | 528 | err = dev_open(ndev, NULL); |
529 | 529 | ||
530 | err_exit: | 530 | err_exit: |
531 | return err; | 531 | return err; |
diff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c b/drivers/net/ethernet/cisco/enic/enic_ethtool.c index f42f7a6e1559..ebd5c2cf1efe 100644 --- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c +++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c | |||
@@ -241,7 +241,7 @@ static int enic_set_ringparam(struct net_device *netdev, | |||
241 | } | 241 | } |
242 | enic_init_vnic_resources(enic); | 242 | enic_init_vnic_resources(enic); |
243 | if (running) { | 243 | if (running) { |
244 | err = dev_open(netdev); | 244 | err = dev_open(netdev, NULL); |
245 | if (err) | 245 | if (err) |
246 | goto err_out; | 246 | goto err_out; |
247 | } | 247 | } |
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c index 774beda040a1..8e9b95871d30 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | |||
@@ -624,7 +624,7 @@ static void hns_nic_self_test(struct net_device *ndev, | |||
624 | clear_bit(NIC_STATE_TESTING, &priv->state); | 624 | clear_bit(NIC_STATE_TESTING, &priv->state); |
625 | 625 | ||
626 | if (if_running) | 626 | if (if_running) |
627 | (void)dev_open(ndev); | 627 | (void)dev_open(ndev, NULL); |
628 | } | 628 | } |
629 | /* Online tests aren't run; pass by default */ | 629 | /* Online tests aren't run; pass by default */ |
630 | 630 | ||
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c index 4563638367ac..e678b6939da3 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | |||
@@ -821,7 +821,7 @@ static int hns3_set_ringparam(struct net_device *ndev, | |||
821 | } | 821 | } |
822 | 822 | ||
823 | if (if_running) | 823 | if (if_running) |
824 | ret = dev_open(ndev); | 824 | ret = dev_open(ndev, NULL); |
825 | 825 | ||
826 | return ret; | 826 | return ret; |
827 | } | 827 | } |
diff --git a/drivers/net/ethernet/sfc/ethtool.c b/drivers/net/ethernet/sfc/ethtool.c index 3143588ffd77..600d7b895cf2 100644 --- a/drivers/net/ethernet/sfc/ethtool.c +++ b/drivers/net/ethernet/sfc/ethtool.c | |||
@@ -539,7 +539,7 @@ static void efx_ethtool_self_test(struct net_device *net_dev, | |||
539 | /* We need rx buffers and interrupts. */ | 539 | /* We need rx buffers and interrupts. */ |
540 | already_up = (efx->net_dev->flags & IFF_UP); | 540 | already_up = (efx->net_dev->flags & IFF_UP); |
541 | if (!already_up) { | 541 | if (!already_up) { |
542 | rc = dev_open(efx->net_dev); | 542 | rc = dev_open(efx->net_dev, NULL); |
543 | if (rc) { | 543 | if (rc) { |
544 | netif_err(efx, drv, efx->net_dev, | 544 | netif_err(efx, drv, efx->net_dev, |
545 | "failed opening device.\n"); | 545 | "failed opening device.\n"); |
diff --git a/drivers/net/ethernet/sfc/falcon/ethtool.c b/drivers/net/ethernet/sfc/falcon/ethtool.c index 1ccdb7a82e2a..72cedec945c1 100644 --- a/drivers/net/ethernet/sfc/falcon/ethtool.c +++ b/drivers/net/ethernet/sfc/falcon/ethtool.c | |||
@@ -517,7 +517,7 @@ static void ef4_ethtool_self_test(struct net_device *net_dev, | |||
517 | /* We need rx buffers and interrupts. */ | 517 | /* We need rx buffers and interrupts. */ |
518 | already_up = (efx->net_dev->flags & IFF_UP); | 518 | already_up = (efx->net_dev->flags & IFF_UP); |
519 | if (!already_up) { | 519 | if (!already_up) { |
520 | rc = dev_open(efx->net_dev); | 520 | rc = dev_open(efx->net_dev, NULL); |
521 | if (rc) { | 521 | if (rc) { |
522 | netif_err(efx, drv, efx->net_dev, | 522 | netif_err(efx, drv, efx->net_dev, |
523 | "failed opening device.\n"); | 523 | "failed opening device.\n"); |
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index c728ed1375b2..d20496f0ebd0 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | |||
@@ -4082,7 +4082,7 @@ static void stmmac_reset_subtask(struct stmmac_priv *priv) | |||
4082 | 4082 | ||
4083 | set_bit(STMMAC_DOWN, &priv->state); | 4083 | set_bit(STMMAC_DOWN, &priv->state); |
4084 | dev_close(priv->dev); | 4084 | dev_close(priv->dev); |
4085 | dev_open(priv->dev); | 4085 | dev_open(priv->dev, NULL); |
4086 | clear_bit(STMMAC_DOWN, &priv->state); | 4086 | clear_bit(STMMAC_DOWN, &priv->state); |
4087 | clear_bit(STMMAC_RESETING, &priv->state); | 4087 | clear_bit(STMMAC_RESETING, &priv->state); |
4088 | rtnl_unlock(); | 4088 | rtnl_unlock(); |
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 85936ed9e952..c65620adab52 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c | |||
@@ -137,7 +137,7 @@ static int netvsc_open(struct net_device *net) | |||
137 | * slave as up. If open fails, then slave will be | 137 | * slave as up. If open fails, then slave will be |
138 | * still be offline (and not used). | 138 | * still be offline (and not used). |
139 | */ | 139 | */ |
140 | ret = dev_open(vf_netdev); | 140 | ret = dev_open(vf_netdev, NULL); |
141 | if (ret) | 141 | if (ret) |
142 | netdev_warn(net, | 142 | netdev_warn(net, |
143 | "unable to open slave: %s: %d\n", | 143 | "unable to open slave: %s: %d\n", |
@@ -2002,7 +2002,7 @@ static void __netvsc_vf_setup(struct net_device *ndev, | |||
2002 | netif_addr_unlock_bh(ndev); | 2002 | netif_addr_unlock_bh(ndev); |
2003 | 2003 | ||
2004 | if (netif_running(ndev)) { | 2004 | if (netif_running(ndev)) { |
2005 | ret = dev_open(vf_netdev); | 2005 | ret = dev_open(vf_netdev, NULL); |
2006 | if (ret) | 2006 | if (ret) |
2007 | netdev_warn(vf_netdev, | 2007 | netdev_warn(vf_netdev, |
2008 | "unable to open: %d\n", ret); | 2008 | "unable to open: %d\n", ret); |
diff --git a/drivers/net/net_failover.c b/drivers/net/net_failover.c index e964d312f4ca..ed1166adaa2f 100644 --- a/drivers/net/net_failover.c +++ b/drivers/net/net_failover.c | |||
@@ -40,14 +40,14 @@ static int net_failover_open(struct net_device *dev) | |||
40 | 40 | ||
41 | primary_dev = rtnl_dereference(nfo_info->primary_dev); | 41 | primary_dev = rtnl_dereference(nfo_info->primary_dev); |
42 | if (primary_dev) { | 42 | if (primary_dev) { |
43 | err = dev_open(primary_dev); | 43 | err = dev_open(primary_dev, NULL); |
44 | if (err) | 44 | if (err) |
45 | goto err_primary_open; | 45 | goto err_primary_open; |
46 | } | 46 | } |
47 | 47 | ||
48 | standby_dev = rtnl_dereference(nfo_info->standby_dev); | 48 | standby_dev = rtnl_dereference(nfo_info->standby_dev); |
49 | if (standby_dev) { | 49 | if (standby_dev) { |
50 | err = dev_open(standby_dev); | 50 | err = dev_open(standby_dev, NULL); |
51 | if (err) | 51 | if (err) |
52 | goto err_standby_open; | 52 | goto err_standby_open; |
53 | } | 53 | } |
@@ -517,7 +517,7 @@ static int net_failover_slave_register(struct net_device *slave_dev, | |||
517 | dev_hold(slave_dev); | 517 | dev_hold(slave_dev); |
518 | 518 | ||
519 | if (netif_running(failover_dev)) { | 519 | if (netif_running(failover_dev)) { |
520 | err = dev_open(slave_dev); | 520 | err = dev_open(slave_dev, NULL); |
521 | if (err && (err != -EBUSY)) { | 521 | if (err && (err != -EBUSY)) { |
522 | netdev_err(failover_dev, "Opening slave %s failed err:%d\n", | 522 | netdev_err(failover_dev, "Opening slave %s failed err:%d\n", |
523 | slave_dev->name, err); | 523 | slave_dev->name, err); |
@@ -680,7 +680,7 @@ static int net_failover_slave_name_change(struct net_device *slave_dev, | |||
680 | /* We need to bring up the slave after the rename by udev in case | 680 | /* We need to bring up the slave after the rename by udev in case |
681 | * open failed with EBUSY when it was registered. | 681 | * open failed with EBUSY when it was registered. |
682 | */ | 682 | */ |
683 | dev_open(slave_dev); | 683 | dev_open(slave_dev, NULL); |
684 | 684 | ||
685 | return 0; | 685 | return 0; |
686 | } | 686 | } |
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 364f514d56d8..93576e0240dd 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c | |||
@@ -1212,7 +1212,7 @@ static int team_port_add(struct team *team, struct net_device *port_dev, | |||
1212 | goto err_port_enter; | 1212 | goto err_port_enter; |
1213 | } | 1213 | } |
1214 | 1214 | ||
1215 | err = dev_open(port_dev); | 1215 | err = dev_open(port_dev, extack); |
1216 | if (err) { | 1216 | if (err) { |
1217 | netdev_dbg(dev, "Device %s opening failed\n", | 1217 | netdev_dbg(dev, "Device %s opening failed\n", |
1218 | portname); | 1218 | portname); |
diff --git a/drivers/net/wireless/intersil/hostap/hostap_main.c b/drivers/net/wireless/intersil/hostap/hostap_main.c index 012930d35434..b0e7c0a0617e 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_main.c +++ b/drivers/net/wireless/intersil/hostap/hostap_main.c | |||
@@ -690,7 +690,7 @@ static int prism2_open(struct net_device *dev) | |||
690 | /* Master radio interface is needed for all operation, so open | 690 | /* Master radio interface is needed for all operation, so open |
691 | * it automatically when any virtual net_device is opened. */ | 691 | * it automatically when any virtual net_device is opened. */ |
692 | local->master_dev_auto_open = 1; | 692 | local->master_dev_auto_open = 1; |
693 | dev_open(local->dev); | 693 | dev_open(local->dev, NULL); |
694 | } | 694 | } |
695 | 695 | ||
696 | netif_device_attach(dev); | 696 | netif_device_attach(dev); |
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index 2836231c1c5d..f108d4b44605 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c | |||
@@ -1007,7 +1007,7 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode) | |||
1007 | qeth_l2_set_rx_mode(card->dev); | 1007 | qeth_l2_set_rx_mode(card->dev); |
1008 | } else { | 1008 | } else { |
1009 | rtnl_lock(); | 1009 | rtnl_lock(); |
1010 | dev_open(card->dev); | 1010 | dev_open(card->dev, NULL); |
1011 | rtnl_unlock(); | 1011 | rtnl_unlock(); |
1012 | } | 1012 | } |
1013 | } | 1013 | } |
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index eca68da39d05..42a7cdc59b76 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c | |||
@@ -2417,7 +2417,7 @@ static int __qeth_l3_set_online(struct ccwgroup_device *gdev, int recovery_mode) | |||
2417 | __qeth_l3_open(card->dev); | 2417 | __qeth_l3_open(card->dev); |
2418 | qeth_l3_set_rx_mode(card->dev); | 2418 | qeth_l3_set_rx_mode(card->dev); |
2419 | } else { | 2419 | } else { |
2420 | dev_open(card->dev); | 2420 | dev_open(card->dev, NULL); |
2421 | } | 2421 | } |
2422 | rtnl_unlock(); | 2422 | rtnl_unlock(); |
2423 | } | 2423 | } |
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index 4fa37d6e598b..daabaceeea52 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c | |||
@@ -1172,7 +1172,7 @@ static int ethsw_open(struct ethsw_core *ethsw) | |||
1172 | 1172 | ||
1173 | for (i = 0; i < ethsw->sw_attr.num_ifs; i++) { | 1173 | for (i = 0; i < ethsw->sw_attr.num_ifs; i++) { |
1174 | port_priv = ethsw->ports[i]; | 1174 | port_priv = ethsw->ports[i]; |
1175 | err = dev_open(port_priv->netdev); | 1175 | err = dev_open(port_priv->netdev, NULL); |
1176 | if (err) { | 1176 | if (err) { |
1177 | netdev_err(port_priv->netdev, "dev_open err %d\n", err); | 1177 | netdev_err(port_priv->netdev, "dev_open err %d\n", err); |
1178 | return err; | 1178 | return err; |
diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 3647b8f1ed28..5eeb4b93b45b 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c | |||
@@ -2095,7 +2095,7 @@ static int visornic_resume(struct visor_device *dev, | |||
2095 | mod_timer(&devdata->irq_poll_timer, msecs_to_jiffies(2)); | 2095 | mod_timer(&devdata->irq_poll_timer, msecs_to_jiffies(2)); |
2096 | 2096 | ||
2097 | rtnl_lock(); | 2097 | rtnl_lock(); |
2098 | dev_open(netdev); | 2098 | dev_open(netdev, NULL); |
2099 | rtnl_unlock(); | 2099 | rtnl_unlock(); |
2100 | 2100 | ||
2101 | complete_func(dev, 0); | 2101 | complete_func(dev, 0); |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 94fb2e12f117..d79be3055f5f 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -2605,7 +2605,7 @@ struct net_device *dev_get_by_name(struct net *net, const char *name); | |||
2605 | struct net_device *dev_get_by_name_rcu(struct net *net, const char *name); | 2605 | struct net_device *dev_get_by_name_rcu(struct net *net, const char *name); |
2606 | struct net_device *__dev_get_by_name(struct net *net, const char *name); | 2606 | struct net_device *__dev_get_by_name(struct net *net, const char *name); |
2607 | int dev_alloc_name(struct net_device *dev, const char *name); | 2607 | int dev_alloc_name(struct net_device *dev, const char *name); |
2608 | int dev_open(struct net_device *dev); | 2608 | int dev_open(struct net_device *dev, struct netlink_ext_ack *extack); |
2609 | void dev_close(struct net_device *dev); | 2609 | void dev_close(struct net_device *dev); |
2610 | void dev_close_many(struct list_head *head, bool unlink); | 2610 | void dev_close_many(struct list_head *head, bool unlink); |
2611 | void dev_disable_lro(struct net_device *dev); | 2611 | void dev_disable_lro(struct net_device *dev); |
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c index 828e87fe8027..9d79c7de234a 100644 --- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c | |||
@@ -607,7 +607,7 @@ static void ifup(struct net_device *netdev) | |||
607 | int err; | 607 | int err; |
608 | 608 | ||
609 | rtnl_lock(); | 609 | rtnl_lock(); |
610 | err = dev_open(netdev); | 610 | err = dev_open(netdev, NULL); |
611 | if (err < 0) | 611 | if (err < 0) |
612 | BT_INFO("iface %s cannot be opened (%d)", netdev->name, err); | 612 | BT_INFO("iface %s cannot be opened (%d)", netdev->name, err); |
613 | rtnl_unlock(); | 613 | rtnl_unlock(); |
diff --git a/net/core/dev.c b/net/core/dev.c index 04a6b7100aac..b801c1aafd70 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1406,7 +1406,8 @@ static int __dev_open(struct net_device *dev) | |||
1406 | 1406 | ||
1407 | /** | 1407 | /** |
1408 | * dev_open - prepare an interface for use. | 1408 | * dev_open - prepare an interface for use. |
1409 | * @dev: device to open | 1409 | * @dev: device to open |
1410 | * @extack: netlink extended ack | ||
1410 | * | 1411 | * |
1411 | * Takes a device from down to up state. The device's private open | 1412 | * Takes a device from down to up state. The device's private open |
1412 | * function is invoked and then the multicast lists are loaded. Finally | 1413 | * function is invoked and then the multicast lists are loaded. Finally |
@@ -1416,7 +1417,7 @@ static int __dev_open(struct net_device *dev) | |||
1416 | * Calling this function on an active interface is a nop. On a failure | 1417 | * Calling this function on an active interface is a nop. On a failure |
1417 | * a negative errno code is returned. | 1418 | * a negative errno code is returned. |
1418 | */ | 1419 | */ |
1419 | int dev_open(struct net_device *dev) | 1420 | int dev_open(struct net_device *dev, struct netlink_ext_ack *extack) |
1420 | { | 1421 | { |
1421 | int ret; | 1422 | int ret; |
1422 | 1423 | ||
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 2b9fdbc43205..36a2b63ffd6d 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -663,7 +663,7 @@ int netpoll_setup(struct netpoll *np) | |||
663 | 663 | ||
664 | np_info(np, "device %s not up yet, forcing it\n", np->dev_name); | 664 | np_info(np, "device %s not up yet, forcing it\n", np->dev_name); |
665 | 665 | ||
666 | err = dev_open(ndev); | 666 | err = dev_open(ndev, NULL); |
667 | 667 | ||
668 | if (err) { | 668 | if (err) { |
669 | np_err(np, "failed to open %s\n", ndev->name); | 669 | np_err(np, "failed to open %s\n", ndev->name); |
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 5cbc749a50aa..ea04e38f56e9 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -506,7 +506,7 @@ static struct net_device *ipmr_new_tunnel(struct net *net, struct vifctl *v) | |||
506 | dev->flags |= IFF_MULTICAST; | 506 | dev->flags |= IFF_MULTICAST; |
507 | if (!ipmr_init_vif_indev(dev)) | 507 | if (!ipmr_init_vif_indev(dev)) |
508 | goto failure; | 508 | goto failure; |
509 | if (dev_open(dev)) | 509 | if (dev_open(dev, NULL)) |
510 | goto failure; | 510 | goto failure; |
511 | dev_hold(dev); | 511 | dev_hold(dev); |
512 | } | 512 | } |
@@ -589,7 +589,7 @@ static struct net_device *ipmr_reg_vif(struct net *net, struct mr_table *mrt) | |||
589 | 589 | ||
590 | if (!ipmr_init_vif_indev(dev)) | 590 | if (!ipmr_init_vif_indev(dev)) |
591 | goto failure; | 591 | goto failure; |
592 | if (dev_open(dev)) | 592 | if (dev_open(dev, NULL)) |
593 | goto failure; | 593 | goto failure; |
594 | 594 | ||
595 | dev_hold(dev); | 595 | dev_hold(dev); |
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 045597b9a7c0..521e471f1cf9 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -2820,7 +2820,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg) | |||
2820 | dev = __dev_get_by_name(net, p.name); | 2820 | dev = __dev_get_by_name(net, p.name); |
2821 | if (!dev) | 2821 | if (!dev) |
2822 | goto err_exit; | 2822 | goto err_exit; |
2823 | err = dev_open(dev); | 2823 | err = dev_open(dev, NULL); |
2824 | } | 2824 | } |
2825 | } | 2825 | } |
2826 | #endif | 2826 | #endif |
diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index e2ea691e42c6..8c63494400c4 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c | |||
@@ -655,7 +655,7 @@ static struct net_device *ip6mr_reg_vif(struct net *net, struct mr_table *mrt) | |||
655 | return NULL; | 655 | return NULL; |
656 | } | 656 | } |
657 | 657 | ||
658 | if (dev_open(dev)) | 658 | if (dev_open(dev, NULL)) |
659 | goto failure; | 659 | goto failure; |
660 | 660 | ||
661 | dev_hold(dev); | 661 | dev_hold(dev); |