Skip to content

Commit 00f54e6

Browse files
pmachatadavem330
authored andcommitted
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>
1 parent fdb8b29 commit 00f54e6

File tree

23 files changed

+30
-29
lines changed

23 files changed

+30
-29
lines changed

drivers/net/bonding/bond_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
15381538
slave_dev->flags |= IFF_SLAVE;
15391539

15401540
/* open the slave since the application closed it */
1541-
res = dev_open(slave_dev);
1541+
res = dev_open(slave_dev, extack);
15421542
if (res) {
15431543
netdev_dbg(bond_dev, "Opening slave %s failed\n", slave_dev->name);
15441544
goto err_restore_mac;

drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ static int aq_set_ringparam(struct net_device *ndev,
525525
}
526526
}
527527
if (ndev_running)
528-
err = dev_open(ndev);
528+
err = dev_open(ndev, NULL);
529529

530530
err_exit:
531531
return err;

drivers/net/ethernet/cisco/enic/enic_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ static int enic_set_ringparam(struct net_device *netdev,
241241
}
242242
enic_init_vnic_resources(enic);
243243
if (running) {
244-
err = dev_open(netdev);
244+
err = dev_open(netdev, NULL);
245245
if (err)
246246
goto err_out;
247247
}

drivers/net/ethernet/hisilicon/hns/hns_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ static void hns_nic_self_test(struct net_device *ndev,
624624
clear_bit(NIC_STATE_TESTING, &priv->state);
625625

626626
if (if_running)
627-
(void)dev_open(ndev);
627+
(void)dev_open(ndev, NULL);
628628
}
629629
/* Online tests aren't run; pass by default */
630630

drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,7 @@ static int hns3_set_ringparam(struct net_device *ndev,
821821
}
822822

823823
if (if_running)
824-
ret = dev_open(ndev);
824+
ret = dev_open(ndev, NULL);
825825

826826
return ret;
827827
}

drivers/net/ethernet/sfc/ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ static void efx_ethtool_self_test(struct net_device *net_dev,
539539
/* We need rx buffers and interrupts. */
540540
already_up = (efx->net_dev->flags & IFF_UP);
541541
if (!already_up) {
542-
rc = dev_open(efx->net_dev);
542+
rc = dev_open(efx->net_dev, NULL);
543543
if (rc) {
544544
netif_err(efx, drv, efx->net_dev,
545545
"failed opening device.\n");

drivers/net/ethernet/sfc/falcon/ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ static void ef4_ethtool_self_test(struct net_device *net_dev,
517517
/* We need rx buffers and interrupts. */
518518
already_up = (efx->net_dev->flags & IFF_UP);
519519
if (!already_up) {
520-
rc = dev_open(efx->net_dev);
520+
rc = dev_open(efx->net_dev, NULL);
521521
if (rc) {
522522
netif_err(efx, drv, efx->net_dev,
523523
"failed opening device.\n");

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4082,7 +4082,7 @@ static void stmmac_reset_subtask(struct stmmac_priv *priv)
40824082

40834083
set_bit(STMMAC_DOWN, &priv->state);
40844084
dev_close(priv->dev);
4085-
dev_open(priv->dev);
4085+
dev_open(priv->dev, NULL);
40864086
clear_bit(STMMAC_DOWN, &priv->state);
40874087
clear_bit(STMMAC_RESETING, &priv->state);
40884088
rtnl_unlock();

drivers/net/hyperv/netvsc_drv.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ static int netvsc_open(struct net_device *net)
137137
* slave as up. If open fails, then slave will be
138138
* still be offline (and not used).
139139
*/
140-
ret = dev_open(vf_netdev);
140+
ret = dev_open(vf_netdev, NULL);
141141
if (ret)
142142
netdev_warn(net,
143143
"unable to open slave: %s: %d\n",
@@ -2002,7 +2002,7 @@ static void __netvsc_vf_setup(struct net_device *ndev,
20022002
netif_addr_unlock_bh(ndev);
20032003

20042004
if (netif_running(ndev)) {
2005-
ret = dev_open(vf_netdev);
2005+
ret = dev_open(vf_netdev, NULL);
20062006
if (ret)
20072007
netdev_warn(vf_netdev,
20082008
"unable to open: %d\n", ret);

drivers/net/net_failover.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ static int net_failover_open(struct net_device *dev)
4040

4141
primary_dev = rtnl_dereference(nfo_info->primary_dev);
4242
if (primary_dev) {
43-
err = dev_open(primary_dev);
43+
err = dev_open(primary_dev, NULL);
4444
if (err)
4545
goto err_primary_open;
4646
}
4747

4848
standby_dev = rtnl_dereference(nfo_info->standby_dev);
4949
if (standby_dev) {
50-
err = dev_open(standby_dev);
50+
err = dev_open(standby_dev, NULL);
5151
if (err)
5252
goto err_standby_open;
5353
}
@@ -517,7 +517,7 @@ static int net_failover_slave_register(struct net_device *slave_dev,
517517
dev_hold(slave_dev);
518518

519519
if (netif_running(failover_dev)) {
520-
err = dev_open(slave_dev);
520+
err = dev_open(slave_dev, NULL);
521521
if (err && (err != -EBUSY)) {
522522
netdev_err(failover_dev, "Opening slave %s failed err:%d\n",
523523
slave_dev->name, err);
@@ -680,7 +680,7 @@ static int net_failover_slave_name_change(struct net_device *slave_dev,
680680
/* We need to bring up the slave after the rename by udev in case
681681
* open failed with EBUSY when it was registered.
682682
*/
683-
dev_open(slave_dev);
683+
dev_open(slave_dev, NULL);
684684

685685
return 0;
686686
}

drivers/net/team/team.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,7 @@ static int team_port_add(struct team *team, struct net_device *port_dev,
12121212
goto err_port_enter;
12131213
}
12141214

1215-
err = dev_open(port_dev);
1215+
err = dev_open(port_dev, extack);
12161216
if (err) {
12171217
netdev_dbg(dev, "Device %s opening failed\n",
12181218
portname);

drivers/net/wireless/intersil/hostap/hostap_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ static int prism2_open(struct net_device *dev)
690690
/* Master radio interface is needed for all operation, so open
691691
* it automatically when any virtual net_device is opened. */
692692
local->master_dev_auto_open = 1;
693-
dev_open(local->dev);
693+
dev_open(local->dev, NULL);
694694
}
695695

696696
netif_device_attach(dev);

drivers/s390/net/qeth_l2_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1007,7 +1007,7 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
10071007
qeth_l2_set_rx_mode(card->dev);
10081008
} else {
10091009
rtnl_lock();
1010-
dev_open(card->dev);
1010+
dev_open(card->dev, NULL);
10111011
rtnl_unlock();
10121012
}
10131013
}

drivers/s390/net/qeth_l3_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2417,7 +2417,7 @@ static int __qeth_l3_set_online(struct ccwgroup_device *gdev, int recovery_mode)
24172417
__qeth_l3_open(card->dev);
24182418
qeth_l3_set_rx_mode(card->dev);
24192419
} else {
2420-
dev_open(card->dev);
2420+
dev_open(card->dev, NULL);
24212421
}
24222422
rtnl_unlock();
24232423
}

drivers/staging/fsl-dpaa2/ethsw/ethsw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ static int ethsw_open(struct ethsw_core *ethsw)
11721172

11731173
for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
11741174
port_priv = ethsw->ports[i];
1175-
err = dev_open(port_priv->netdev);
1175+
err = dev_open(port_priv->netdev, NULL);
11761176
if (err) {
11771177
netdev_err(port_priv->netdev, "dev_open err %d\n", err);
11781178
return err;

drivers/staging/unisys/visornic/visornic_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2095,7 +2095,7 @@ static int visornic_resume(struct visor_device *dev,
20952095
mod_timer(&devdata->irq_poll_timer, msecs_to_jiffies(2));
20962096

20972097
rtnl_lock();
2098-
dev_open(netdev);
2098+
dev_open(netdev, NULL);
20992099
rtnl_unlock();
21002100

21012101
complete_func(dev, 0);

include/linux/netdevice.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2605,7 +2605,7 @@ struct net_device *dev_get_by_name(struct net *net, const char *name);
26052605
struct net_device *dev_get_by_name_rcu(struct net *net, const char *name);
26062606
struct net_device *__dev_get_by_name(struct net *net, const char *name);
26072607
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);
26092609
void dev_close(struct net_device *dev);
26102610
void dev_close_many(struct list_head *head, bool unlink);
26112611
void dev_disable_lro(struct net_device *dev);

net/bluetooth/6lowpan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ static void ifup(struct net_device *netdev)
607607
int err;
608608

609609
rtnl_lock();
610-
err = dev_open(netdev);
610+
err = dev_open(netdev, NULL);
611611
if (err < 0)
612612
BT_INFO("iface %s cannot be opened (%d)", netdev->name, err);
613613
rtnl_unlock();

net/core/dev.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1406,7 +1406,8 @@ static int __dev_open(struct net_device *dev)
14061406

14071407
/**
14081408
* dev_open - prepare an interface for use.
1409-
* @dev: device to open
1409+
* @dev: device to open
1410+
* @extack: netlink extended ack
14101411
*
14111412
* Takes a device from down to up state. The device's private open
14121413
* function is invoked and then the multicast lists are loaded. Finally
@@ -1416,7 +1417,7 @@ static int __dev_open(struct net_device *dev)
14161417
* Calling this function on an active interface is a nop. On a failure
14171418
* a negative errno code is returned.
14181419
*/
1419-
int dev_open(struct net_device *dev)
1420+
int dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
14201421
{
14211422
int ret;
14221423

net/core/netpoll.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ int netpoll_setup(struct netpoll *np)
663663

664664
np_info(np, "device %s not up yet, forcing it\n", np->dev_name);
665665

666-
err = dev_open(ndev);
666+
err = dev_open(ndev, NULL);
667667

668668
if (err) {
669669
np_err(np, "failed to open %s\n", ndev->name);

net/ipv4/ipmr.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ static struct net_device *ipmr_new_tunnel(struct net *net, struct vifctl *v)
506506
dev->flags |= IFF_MULTICAST;
507507
if (!ipmr_init_vif_indev(dev))
508508
goto failure;
509-
if (dev_open(dev))
509+
if (dev_open(dev, NULL))
510510
goto failure;
511511
dev_hold(dev);
512512
}
@@ -589,7 +589,7 @@ static struct net_device *ipmr_reg_vif(struct net *net, struct mr_table *mrt)
589589

590590
if (!ipmr_init_vif_indev(dev))
591591
goto failure;
592-
if (dev_open(dev))
592+
if (dev_open(dev, NULL))
593593
goto failure;
594594

595595
dev_hold(dev);

net/ipv6/addrconf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2820,7 +2820,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
28202820
dev = __dev_get_by_name(net, p.name);
28212821
if (!dev)
28222822
goto err_exit;
2823-
err = dev_open(dev);
2823+
err = dev_open(dev, NULL);
28242824
}
28252825
}
28262826
#endif

net/ipv6/ip6mr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,7 @@ static struct net_device *ip6mr_reg_vif(struct net *net, struct mr_table *mrt)
655655
return NULL;
656656
}
657657

658-
if (dev_open(dev))
658+
if (dev_open(dev, NULL))
659659
goto failure;
660660

661661
dev_hold(dev);

0 commit comments

Comments
 (0)