Dave Miller mentioned he'd like to see SET_ETHTOOL_OPS gone. This does that. Compile tested only, but I'd seriously wonder if this broke anything. Suggested-by: Dave Miller <davem at davemloft.net> Signed-off-by: Wilfried Klaebe <w-lkml at lebenslange-mailadresse.de> --- Applies against v3.15-rc4. diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c index c4b3940..078cadd 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c @@ -105,5 +105,5 @@ static const struct ethtool_ops ipoib_ethtool_ops = { void ipoib_set_ethtool_ops(struct net_device *dev) { - SET_ETHTOOL_OPS(dev, &ipoib_ethtool_ops); + dev->ethtool_ops = &ipoib_ethtool_ops; } diff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c index 35df0b9..a968654 100644 --- a/drivers/net/ethernet/3com/3c509.c +++ b/drivers/net/ethernet/3com/3c509.c @@ -534,7 +534,7 @@ static int el3_common_init(struct net_device *dev) /* The EL3-specific entries in the device structure. */ dev->netdev_ops = &netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; err = register_netdev(dev); if (err) { diff --git a/drivers/net/ethernet/3com/3c589_cs.c b/drivers/net/ethernet/3com/3c589_cs.c index 063557e..f18647c 100644 --- a/drivers/net/ethernet/3com/3c589_cs.c +++ b/drivers/net/ethernet/3com/3c589_cs.c @@ -218,7 +218,7 @@ static int tc589_probe(struct pcmcia_device *link) dev->netdev_ops = &el3_netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); + dev->ethtool_ops = &netdev_ethtool_ops; return tc589_config(link); } diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c index 465cc71..e13b046 100644 --- a/drivers/net/ethernet/3com/typhoon.c +++ b/drivers/net/ethernet/3com/typhoon.c @@ -2435,7 +2435,7 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) netif_napi_add(dev, &tp->napi, typhoon_poll, 16); dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, &typhoon_ethtool_ops); + dev->ethtool_ops = &typhoon_ethtool_ops; /* We can handle scatter gather, up to 16 entries, and * we can do IP checksumming (only version 4, doh...) diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c index 171d73c..40dbbf7 100644 --- a/drivers/net/ethernet/adaptec/starfire.c +++ b/drivers/net/ethernet/adaptec/starfire.c @@ -784,7 +784,7 @@ static int starfire_init_one(struct pci_dev *pdev, dev->netdev_ops = &netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; netif_napi_add(dev, &np->napi, netdev_poll, max_interrupt_work); diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c index 1517e9df..9a6991b 100644 --- a/drivers/net/ethernet/alteon/acenic.c +++ b/drivers/net/ethernet/alteon/acenic.c @@ -476,7 +476,7 @@ static int acenic_probe_one(struct pci_dev *pdev, dev->watchdog_timeo = 5*HZ; dev->netdev_ops = &ace_netdev_ops; - SET_ETHTOOL_OPS(dev, &ace_ethtool_ops); + dev->ethtool_ops = &ace_ethtool_ops; /* we only display this string ONCE */ if (!boards_found) diff --git a/drivers/net/ethernet/altera/altera_tse_ethtool.c b/drivers/net/ethernet/altera/altera_tse_ethtool.c index 319ca74..8ac4bd2 100644 --- a/drivers/net/ethernet/altera/altera_tse_ethtool.c +++ b/drivers/net/ethernet/altera/altera_tse_ethtool.c @@ -231,5 +231,5 @@ static const struct ethtool_ops tse_ethtool_ops = { void altera_tse_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &tse_ethtool_ops); + netdev->ethtool_ops = &tse_ethtool_ops; } diff --git a/drivers/net/ethernet/amd/amd8111e.c b/drivers/net/ethernet/amd/amd8111e.c index 26efaaa..068dc7c 100644 --- a/drivers/net/ethernet/amd/amd8111e.c +++ b/drivers/net/ethernet/amd/amd8111e.c @@ -1900,7 +1900,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev, /* Initialize driver entry points */ dev->netdev_ops = &amd8111e_netdev_ops; - SET_ETHTOOL_OPS(dev, &ops); + dev->ethtool_ops = &ops; dev->irq =pdev->irq; dev->watchdog_timeo = AMD8111E_TX_TIMEOUT; netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32); diff --git a/drivers/net/ethernet/amd/au1000_eth.c b/drivers/net/ethernet/amd/au1000_eth.c index a2bd91e..a78e4c1 100644 --- a/drivers/net/ethernet/amd/au1000_eth.c +++ b/drivers/net/ethernet/amd/au1000_eth.c @@ -1229,7 +1229,7 @@ static int au1000_probe(struct platform_device *pdev) dev->base_addr = base->start; dev->irq = irq; dev->netdev_ops = &au1000_netdev_ops; - SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops); + dev->ethtool_ops = &au1000_ethtool_ops; dev->watchdog_timeo = ETH_TX_TIMEOUT; /* diff --git a/drivers/net/ethernet/amd/nmclan_cs.c b/drivers/net/ethernet/amd/nmclan_cs.c index 08569fe..abf3b15 100644 --- a/drivers/net/ethernet/amd/nmclan_cs.c +++ b/drivers/net/ethernet/amd/nmclan_cs.c @@ -457,7 +457,7 @@ static int nmclan_probe(struct pcmcia_device *link) lp->tx_free_frames=AM2150_MAX_TX_FRAMES; dev->netdev_ops = &mace_netdev_ops; - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); + dev->ethtool_ops = &netdev_ethtool_ops; dev->watchdog_timeo = TX_TIMEOUT; return nmclan_config(link); diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c index 17bb9ce..49faa97 100644 --- a/drivers/net/ethernet/atheros/alx/main.c +++ b/drivers/net/ethernet/atheros/alx/main.c @@ -1302,7 +1302,7 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } netdev->netdev_ops = &alx_netdev_ops; - SET_ETHTOOL_OPS(netdev, &alx_ethtool_ops); + netdev->ethtool_ops = &alx_ethtool_ops; netdev->irq = pdev->irq; netdev->watchdog_timeo = ALX_WATCHDOG_TIME; diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c index 859ea84..ecacaae 100644 --- a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c @@ -305,5 +305,5 @@ static const struct ethtool_ops atl1c_ethtool_ops = { void atl1c_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &atl1c_ethtool_ops); + netdev->ethtool_ops = &atl1c_ethtool_ops; } diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c index 82b2386..206e9b7 100644 --- a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c @@ -388,5 +388,5 @@ static const struct ethtool_ops atl1e_ethtool_ops = { void atl1e_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &atl1e_ethtool_ops); + netdev->ethtool_ops = &atl1e_ethtool_ops; } diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c index 78befb5..2587fed 100644 --- a/drivers/net/ethernet/atheros/atlx/atl2.c +++ b/drivers/net/ethernet/atheros/atlx/atl2.c @@ -1396,7 +1396,7 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent) atl2_setup_pcicmd(pdev); netdev->netdev_ops = &atl2_netdev_ops; - SET_ETHTOOL_OPS(netdev, &atl2_ethtool_ops); + netdev->ethtool_ops = &atl2_ethtool_ops; netdev->watchdog_timeo = 5 * HZ; strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c index 05ba625..ca5a20a 100644 --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c @@ -2380,7 +2380,7 @@ static int b44_init_one(struct ssb_device *sdev, netif_napi_add(dev, &bp->napi, b44_poll, 64); dev->watchdog_timeo = B44_TX_TIMEOUT; dev->irq = sdev->irq; - SET_ETHTOOL_OPS(dev, &b44_ethtool_ops); + dev->ethtool_ops = &b44_ethtool_ops; err = ssb_bus_powerup(sdev->bus, 0); if (err) { diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c index a7d11f5..1e7bba9c 100644 --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c @@ -1898,7 +1898,7 @@ static int bcm_enet_probe(struct platform_device *pdev) dev->netdev_ops = &bcm_enet_ops; netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16); - SET_ETHTOOL_OPS(dev, &bcm_enet_ethtool_ops); + dev->ethtool_ops = &bcm_enet_ethtool_ops; SET_NETDEV_DEV(dev, &pdev->dev); ret = register_netdev(dev); @@ -2784,7 +2784,7 @@ static int bcm_enetsw_probe(struct platform_device *pdev) /* register netdevice */ dev->netdev_ops = &bcm_enetsw_ops; netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16); - SET_ETHTOOL_OPS(dev, &bcm_enetsw_ethtool_ops); + dev->ethtool_ops = &bcm_enetsw_ethtool_ops; SET_NETDEV_DEV(dev, &pdev->dev); spin_lock_init(&priv->enetsw_mdio_lock); diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index 0297a79..05c6af6 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -1436,7 +1436,7 @@ static int bgmac_probe(struct bcma_device *core) return -ENOMEM; net_dev->netdev_ops = &bgmac_netdev_ops; net_dev->irq = core->irq; - SET_ETHTOOL_OPS(net_dev, &bgmac_ethtool_ops); + net_dev->ethtool_ops = &bgmac_ethtool_ops; bgmac = netdev_priv(net_dev); bgmac->net_dev = net_dev; bgmac->core = core; diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c index b6de05e..0322409 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c @@ -3506,8 +3506,6 @@ static const struct ethtool_ops bnx2x_vf_ethtool_ops = { void bnx2x_set_ethtool_ops(struct bnx2x *bp, struct net_device *netdev) { - if (IS_PF(bp)) - SET_ETHTOOL_OPS(netdev, &bnx2x_ethtool_ops); - else /* vf */ - SET_ETHTOOL_OPS(netdev, &bnx2x_vf_ethtool_ops); + netdev->ethtool_ops = (IS_PF(bp)) ? + &bnx2x_ethtool_ops : &bnx2x_vf_ethtool_ops; } diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 0966bd0..5ba1cfb 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2481,7 +2481,7 @@ static int bcmgenet_probe(struct platform_device *pdev) dev_set_drvdata(&pdev->dev, dev); ether_addr_copy(dev->dev_addr, macaddr); dev->watchdog_timeo = 2 * HZ; - SET_ETHTOOL_OPS(dev, &bcmgenet_ethtool_ops); + dev->ethtool_ops = &bcmgenet_ethtool_ops; dev->netdev_ops = &bcmgenet_netdev_ops; netif_napi_add(dev, &priv->napi, bcmgenet_poll, 64); diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c index f9e1508..adca62b 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c +++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c @@ -1137,5 +1137,5 @@ static const struct ethtool_ops bnad_ethtool_ops = { void bnad_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &bnad_ethtool_ops); + netdev->ethtool_ops = &bnad_ethtool_ops; } diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c index 521dfea..25d6b2a 100644 --- a/drivers/net/ethernet/calxeda/xgmac.c +++ b/drivers/net/ethernet/calxeda/xgmac.c @@ -1737,7 +1737,7 @@ static int xgmac_probe(struct platform_device *pdev) platform_set_drvdata(pdev, ndev); ether_setup(ndev); ndev->netdev_ops = &xgmac_netdev_ops; - SET_ETHTOOL_OPS(ndev, &xgmac_ethtool_ops); + ndev->ethtool_ops = &xgmac_ethtool_ops; spin_lock_init(&priv->stats_lock); INIT_WORK(&priv->tx_timeout_work, xgmac_tx_timeout_work); diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c index 0fe7ff7..c1b2c1d 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c @@ -1100,7 +1100,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) netif_napi_add(netdev, &adapter->napi, t1_poll, 64); - SET_ETHTOOL_OPS(netdev, &t1_ethtool_ops); + netdev->ethtool_ops = &t1_ethtool_ops; } if (t1_init_sw_modules(adapter, bi) < 0) { diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c index 07bbb71..3ed5079 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c @@ -3291,7 +3291,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) netdev->features |= NETIF_F_HIGHDMA; netdev->netdev_ops = &cxgb_netdev_ops; - SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); + netdev->ethtool_ops = &cxgb_ethtool_ops; } pci_set_drvdata(pdev, adapter); diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 6fe5891..7c61f89 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -6074,7 +6074,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) netdev->priv_flags |= IFF_UNICAST_FLT; netdev->netdev_ops = &cxgb4_netdev_ops; - SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); + netdev->ethtool_ops = &cxgb_ethtool_ops; } pci_set_drvdata(pdev, adapter); diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c index 5285928..ff1cdd1 100644 --- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c @@ -2664,7 +2664,7 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev, netdev->priv_flags |= IFF_UNICAST_FLT; netdev->netdev_ops = &cxgb4vf_netdev_ops; - SET_ETHTOOL_OPS(netdev, &cxgb4vf_ethtool_ops); + netdev->ethtool_ops = &cxgb4vf_ethtool_ops; /* * Initialize the hardware/software state for the port. diff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c b/drivers/net/ethernet/cisco/enic/enic_ethtool.c index 47e3562..58a8c67 100644 --- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c +++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c @@ -253,5 +253,5 @@ static const struct ethtool_ops enic_ethtool_ops = { void enic_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &enic_ethtool_ops); + netdev->ethtool_ops = &enic_ethtool_ops; } diff --git a/drivers/net/ethernet/dec/tulip/tulip_core.c b/drivers/net/ethernet/dec/tulip/tulip_core.c index 1642de7..8616608 100644 --- a/drivers/net/ethernet/dec/tulip/tulip_core.c +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c @@ -1703,7 +1703,7 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) #ifdef CONFIG_TULIP_NAPI netif_napi_add(dev, &tp->napi, tulip_poll, 16); #endif - SET_ETHTOOL_OPS(dev, &ops); + dev->ethtool_ops = &ops; if (register_netdev(dev)) goto err_out_free_ring; diff --git a/drivers/net/ethernet/dlink/dl2k.c b/drivers/net/ethernet/dlink/dl2k.c index 4fb756d..2324f2d 100644 --- a/drivers/net/ethernet/dlink/dl2k.c +++ b/drivers/net/ethernet/dlink/dl2k.c @@ -227,7 +227,7 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent) } dev->netdev_ops = &netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; #if 0 dev->features = NETIF_F_IP_CSUM; #endif diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c index d9e5ca0..433c1e1 100644 --- a/drivers/net/ethernet/dlink/sundance.c +++ b/drivers/net/ethernet/dlink/sundance.c @@ -577,7 +577,7 @@ static int sundance_probe1(struct pci_dev *pdev, /* The chip-specific entries in the device structure. */ dev->netdev_ops = &netdev_ops; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; dev->watchdog_timeo = TX_TIMEOUT; pci_set_drvdata(pdev, dev); diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index a186454..9a9e7c7 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -4301,7 +4301,7 @@ static void be_netdev_init(struct net_device *netdev) netdev->netdev_ops = &be_netdev_ops; - SET_ETHTOOL_OPS(netdev, &be_ethtool_ops); + netdev->ethtool_ops = &be_ethtool_ops; } static void be_unmap_pci_bars(struct be_adapter *adapter) diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c index 68069ea..c77fa4a 100644 --- a/drivers/net/ethernet/faraday/ftgmac100.c +++ b/drivers/net/ethernet/faraday/ftgmac100.c @@ -1210,7 +1210,7 @@ static int ftgmac100_probe(struct platform_device *pdev) SET_NETDEV_DEV(netdev, &pdev->dev); - SET_ETHTOOL_OPS(netdev, &ftgmac100_ethtool_ops); + netdev->ethtool_ops = &ftgmac100_ethtool_ops; netdev->netdev_ops = &ftgmac100_netdev_ops; netdev->features = NETIF_F_IP_CSUM | NETIF_F_GRO; diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c index 8be5b40..4ff1adc 100644 --- a/drivers/net/ethernet/faraday/ftmac100.c +++ b/drivers/net/ethernet/faraday/ftmac100.c @@ -1085,7 +1085,7 @@ static int ftmac100_probe(struct platform_device *pdev) } SET_NETDEV_DEV(netdev, &pdev->dev); - SET_ETHTOOL_OPS(netdev, &ftmac100_ethtool_ops); + netdev->ethtool_ops = &ftmac100_ethtool_ops; netdev->netdev_ops = &ftmac100_netdev_ops; platform_set_drvdata(pdev, netdev); diff --git a/drivers/net/ethernet/freescale/ucc_geth_ethtool.c b/drivers/net/ethernet/freescale/ucc_geth_ethtool.c index 413329e..cc83350 100644 --- a/drivers/net/ethernet/freescale/ucc_geth_ethtool.c +++ b/drivers/net/ethernet/freescale/ucc_geth_ethtool.c @@ -417,5 +417,5 @@ static const struct ethtool_ops uec_ethtool_ops = { void uec_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &uec_ethtool_ops); + netdev->ethtool_ops = &uec_ethtool_ops; } diff --git a/drivers/net/ethernet/fujitsu/fmvj18x_cs.c b/drivers/net/ethernet/fujitsu/fmvj18x_cs.c index 7becab1..cfe7a74 100644 --- a/drivers/net/ethernet/fujitsu/fmvj18x_cs.c +++ b/drivers/net/ethernet/fujitsu/fmvj18x_cs.c @@ -256,7 +256,7 @@ static int fmvj18x_probe(struct pcmcia_device *link) dev->netdev_ops = &fjn_netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); + dev->ethtool_ops = &netdev_ethtool_ops; return fmvj18x_config(link); } /* fmvj18x_attach */ diff --git a/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c b/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c index 95837b9..6055e3e 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c @@ -278,5 +278,5 @@ static const struct ethtool_ops ehea_ethtool_ops = { void ehea_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &ehea_ethtool_ops); + netdev->ethtool_ops = &ehea_ethtool_ops; } diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c index ae342fd..87bd953 100644 --- a/drivers/net/ethernet/ibm/emac/core.c +++ b/drivers/net/ethernet/ibm/emac/core.c @@ -2879,7 +2879,7 @@ static int emac_probe(struct platform_device *ofdev) dev->commac.ops = &emac_commac_sg_ops; } else ndev->netdev_ops = &emac_netdev_ops; - SET_ETHTOOL_OPS(ndev, &emac_ethtool_ops); + ndev->ethtool_ops = &emac_ethtool_ops; netif_carrier_off(ndev); diff --git a/drivers/net/ethernet/icplus/ipg.c b/drivers/net/ethernet/icplus/ipg.c index 25045ae..5727779 100644 --- a/drivers/net/ethernet/icplus/ipg.c +++ b/drivers/net/ethernet/icplus/ipg.c @@ -2245,7 +2245,7 @@ static int ipg_probe(struct pci_dev *pdev, const struct pci_device_id *id) */ dev->netdev_ops = &ipg_netdev_ops; SET_NETDEV_DEV(dev, &pdev->dev); - SET_ETHTOOL_OPS(dev, &ipg_ethtool_ops); + dev->ethtool_ops = &ipg_ethtool_ops; rc = pci_request_regions(pdev, DRV_NAME); if (rc) diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c index b56461c..9d979d7 100644 --- a/drivers/net/ethernet/intel/e100.c +++ b/drivers/net/ethernet/intel/e100.c @@ -2854,7 +2854,7 @@ static int e100_probe(struct pci_dev *pdev, const struct pci_device_id *ent) netdev->hw_features |= NETIF_F_RXALL; netdev->netdev_ops = &e100_netdev_ops; - SET_ETHTOOL_OPS(netdev, &e100_ethtool_ops); + netdev->ethtool_ops = &e100_ethtool_ops; netdev->watchdog_timeo = E100_WATCHDOG_PERIOD; strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c index 73a8aee..341889a 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c +++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c @@ -1905,5 +1905,5 @@ static const struct ethtool_ops e1000_ethtool_ops = { void e1000_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops); + netdev->ethtool_ops = &e1000_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c index cad250b..d9f8a2d 100644 --- a/drivers/net/ethernet/intel/e1000e/ethtool.c +++ b/drivers/net/ethernet/intel/e1000e/ethtool.c @@ -2315,5 +2315,5 @@ static const struct ethtool_ops e1000_ethtool_ops = { void e1000e_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops); + netdev->ethtool_ops = &e1000_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c index 03d99cb..7673f86 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c @@ -1692,5 +1692,5 @@ static const struct ethtool_ops i40e_ethtool_ops = { void i40e_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &i40e_ethtool_ops); + netdev->ethtool_ops = &i40e_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c index 8b0db1c..4defd51 100644 --- a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c +++ b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c @@ -389,5 +389,5 @@ static struct ethtool_ops i40evf_ethtool_ops = { **/ void i40evf_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &i40evf_ethtool_ops); + netdev->ethtool_ops = &i40evf_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c index e5570ac..30b76e1 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -3029,5 +3029,5 @@ static const struct ethtool_ops igb_ethtool_ops = { void igb_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &igb_ethtool_ops); + netdev->ethtool_ops = &igb_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/igbvf/ethtool.c b/drivers/net/ethernet/intel/igbvf/ethtool.c index 90eef07..f58170b 100644 --- a/drivers/net/ethernet/intel/igbvf/ethtool.c +++ b/drivers/net/ethernet/intel/igbvf/ethtool.c @@ -476,5 +476,5 @@ static const struct ethtool_ops igbvf_ethtool_ops = { void igbvf_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &igbvf_ethtool_ops); + netdev->ethtool_ops = &igbvf_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c index dbb7dd2..1da2d98 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c +++ b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c @@ -656,5 +656,5 @@ static const struct ethtool_ops ixgb_ethtool_ops = { void ixgb_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &ixgb_ethtool_ops); + netdev->ethtool_ops = &ixgb_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index 6c55c14..31d7268 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -3099,5 +3099,5 @@ static const struct ethtool_ops ixgbe_ethtool_ops = { void ixgbe_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &ixgbe_ethtool_ops); + netdev->ethtool_ops = &ixgbe_ethtool_ops; } diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c index 1baecb6..a757f07 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c +++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c @@ -813,5 +813,5 @@ static const struct ethtool_ops ixgbevf_ethtool_ops = { void ixgbevf_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &ixgbevf_ethtool_ops); + netdev->ethtool_ops = &ixgbevf_ethtool_ops; } diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c index b7b8d74..df1d1b9 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -2889,7 +2889,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev) if (err) goto out; - SET_ETHTOOL_OPS(dev, &mv643xx_eth_ethtool_ops); + dev->ethtool_ops = &mv643xx_eth_ethtool_ops; init_pscr(mp, pd->speed, pd->duplex); diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 14786c8..72bc47f 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -2813,7 +2813,7 @@ static int mvneta_probe(struct platform_device *pdev) dev->watchdog_timeo = 5 * HZ; dev->netdev_ops = &mvneta_netdev_ops; - SET_ETHTOOL_OPS(dev, &mvneta_eth_tool_ops); + dev->ethtool_ops = &mvneta_eth_tool_ops; pp = netdev_priv(dev); diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c index b358c2f..8f5aa7c 100644 --- a/drivers/net/ethernet/marvell/pxa168_eth.c +++ b/drivers/net/ethernet/marvell/pxa168_eth.c @@ -1488,7 +1488,7 @@ static int pxa168_eth_probe(struct platform_device *pdev) dev->netdev_ops = &pxa168_eth_netdev_ops; dev->watchdog_timeo = 2 * HZ; dev->base_addr = 0; - SET_ETHTOOL_OPS(dev, &pxa168_ethtool_ops); + dev->ethtool_ops = &pxa168_ethtool_ops; INIT_WORK(&pep->tx_timeout_task, pxa168_eth_tx_timeout_task); diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index b811064..6969338 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c @@ -4760,7 +4760,7 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port, SET_NETDEV_DEV(dev, &hw->pdev->dev); dev->irq = hw->pdev->irq; - SET_ETHTOOL_OPS(dev, &sky2_ethtool_ops); + dev->ethtool_ops = &sky2_ethtool_ops; dev->watchdog_timeo = TX_WATCHDOG; dev->netdev_ops = &sky2_netdev_ops[port]; diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index 7e4b172..36af5e7 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -2539,7 +2539,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, netif_set_real_num_tx_queues(dev, priv->tx_ring_num); netif_set_real_num_rx_queues(dev, priv->rx_ring_num); - SET_ETHTOOL_OPS(dev, &mlx4_en_ethtool_ops); + dev->ethtool_ops = &mlx4_en_ethtool_ops; /* * Set driver features diff --git a/drivers/net/ethernet/micrel/ks8695net.c b/drivers/net/ethernet/micrel/ks8695net.c index 16435b3..6c7c78ba 100644 --- a/drivers/net/ethernet/micrel/ks8695net.c +++ b/drivers/net/ethernet/micrel/ks8695net.c @@ -1504,15 +1504,15 @@ ks8695_probe(struct platform_device *pdev) if (ksp->phyiface_regs && ksp->link_irq == -1) { ks8695_init_switch(ksp); ksp->dtype = KS8695_DTYPE_LAN; - SET_ETHTOOL_OPS(ndev, &ks8695_ethtool_ops); + ndev->ethtool_ops = &ks8695_ethtool_ops; } else if (ksp->phyiface_regs && ksp->link_irq != -1) { ks8695_init_wan_phy(ksp); ksp->dtype = KS8695_DTYPE_WAN; - SET_ETHTOOL_OPS(ndev, &ks8695_wan_ethtool_ops); + ndev->ethtool_ops = &ks8695_wan_ethtool_ops; } else { /* No initialisation since HPNA does not have a PHY */ ksp->dtype = KS8695_DTYPE_HPNA; - SET_ETHTOOL_OPS(ndev, &ks8695_ethtool_ops); + ndev->ethtool_ops = &ks8695_ethtool_ops; } /* And bring up the net_device with the net core */ diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c index e0c92e0..13767eb 100644 --- a/drivers/net/ethernet/micrel/ks8851.c +++ b/drivers/net/ethernet/micrel/ks8851.c @@ -1471,7 +1471,7 @@ static int ks8851_probe(struct spi_device *spi) skb_queue_head_init(&ks->txq); - SET_ETHTOOL_OPS(ndev, &ks8851_ethtool_ops); + ndev->ethtool_ops = &ks8851_ethtool_ops; SET_NETDEV_DEV(ndev, &spi->dev); spi_set_drvdata(spi, ks); diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c index 14ac0e2..4b9592c1 100644 --- a/drivers/net/ethernet/micrel/ksz884x.c +++ b/drivers/net/ethernet/micrel/ksz884x.c @@ -7106,7 +7106,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id) } dev->netdev_ops = &netdev_ops; - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); + dev->ethtool_ops = &netdev_ethtool_ops; if (register_netdev(dev)) goto pcidev_init_reg_err; port_set_power_saving(port, true); diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c index c7b40aa..b1b5f66 100644 --- a/drivers/net/ethernet/microchip/enc28j60.c +++ b/drivers/net/ethernet/microchip/enc28j60.c @@ -1593,7 +1593,7 @@ static int enc28j60_probe(struct spi_device *spi) dev->irq = spi->irq; dev->netdev_ops = &enc28j60_netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); + dev->ethtool_ops = &enc28j60_ethtool_ops; enc28j60_lowpower(priv, true); diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index 130f6b2..f3d5d79 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -4112,7 +4112,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) setup_timer(&mgp->watchdog_timer, myri10ge_watchdog_timer, (unsigned long)mgp); - SET_ETHTOOL_OPS(netdev, &myri10ge_ethtool_ops); + netdev->ethtool_ops = &myri10ge_ethtool_ops; INIT_WORK(&mgp->watchdog_work, myri10ge_watchdog); status = register_netdev(netdev); if (status != 0) { diff --git a/drivers/net/ethernet/natsemi/natsemi.c b/drivers/net/ethernet/natsemi/natsemi.c index 64ec2a4..291fba8 100644 --- a/drivers/net/ethernet/natsemi/natsemi.c +++ b/drivers/net/ethernet/natsemi/natsemi.c @@ -927,7 +927,7 @@ static int natsemi_probe1(struct pci_dev *pdev, const struct pci_device_id *ent) dev->netdev_ops = &natsemi_netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; if (mtu) dev->mtu = mtu; diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c index dbccf1d..19bb824 100644 --- a/drivers/net/ethernet/natsemi/ns83820.c +++ b/drivers/net/ethernet/natsemi/ns83820.c @@ -2030,7 +2030,7 @@ static int ns83820_init_one(struct pci_dev *pci_dev, pci_dev->subsystem_vendor, pci_dev->subsystem_device); ndev->netdev_ops = &netdev_ops; - SET_ETHTOOL_OPS(ndev, &ops); + ndev->ethtool_ops = &ops; ndev->watchdog_timeo = 5 * HZ; pci_set_drvdata(pci_dev, ndev); diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c index a2844ff..190538d 100644 --- a/drivers/net/ethernet/neterion/s2io.c +++ b/drivers/net/ethernet/neterion/s2io.c @@ -7919,7 +7919,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) /* Driver entry points */ dev->netdev_ops = &s2io_netdev_ops; - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); + dev->ethtool_ops = &netdev_ethtool_ops; dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_RXCSUM | NETIF_F_LRO; diff --git a/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c b/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c index f8f0738..ddcc81a 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c @@ -1128,5 +1128,5 @@ static const struct ethtool_ops vxge_ethtool_ops = { void vxge_initialize_ethtool_ops(struct net_device *ndev) { - SET_ETHTOOL_OPS(ndev, &vxge_ethtool_ops); + ndev->ethtool_ops = &vxge_ethtool_ops; } diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c index fddb464..e8235c5 100644 --- a/drivers/net/ethernet/nvidia/forcedeth.c +++ b/drivers/net/ethernet/nvidia/forcedeth.c @@ -5766,7 +5766,7 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) dev->netdev_ops = &nv_netdev_ops_optimized; netif_napi_add(dev, &np->napi, nv_napi_poll, RX_WORK_PER_LOOP); - SET_ETHTOOL_OPS(dev, &ops); + dev->ethtool_ops = &ops; dev->watchdog_timeo = NV_WATCHDOG_TIMEO; pci_set_drvdata(pci_dev, dev); diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c index 826f0cc..114d2fe 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c @@ -508,5 +508,5 @@ static const struct ethtool_ops pch_gbe_ethtool_ops = { void pch_gbe_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &pch_gbe_ethtool_ops); + netdev->ethtool_ops = &pch_gbe_ethtool_ops; } diff --git a/drivers/net/ethernet/packetengines/hamachi.c b/drivers/net/ethernet/packetengines/hamachi.c index b6bdeb3..9a997e4 100644 --- a/drivers/net/ethernet/packetengines/hamachi.c +++ b/drivers/net/ethernet/packetengines/hamachi.c @@ -724,10 +724,8 @@ static int hamachi_init_one(struct pci_dev *pdev, /* The Hamachi-specific entries in the device structure. */ dev->netdev_ops = &hamachi_netdev_ops; - if (chip_tbl[hmp->chip_id].flags & CanHaveMII) - SET_ETHTOOL_OPS(dev, ðtool_ops); - else - SET_ETHTOOL_OPS(dev, ðtool_ops_no_mii); + dev->ethtool_ops = (chip_tbl[hmp->chip_id].flags & CanHaveMII) ? + ðtool_ops : ðtool_ops_no_mii; dev->watchdog_timeo = TX_TIMEOUT; if (mtu) dev->mtu = mtu; diff --git a/drivers/net/ethernet/packetengines/yellowfin.c b/drivers/net/ethernet/packetengines/yellowfin.c index 9a6cb48..69a8dc0 100644 --- a/drivers/net/ethernet/packetengines/yellowfin.c +++ b/drivers/net/ethernet/packetengines/yellowfin.c @@ -472,7 +472,7 @@ static int yellowfin_init_one(struct pci_dev *pdev, /* The Yellowfin-specific entries in the device structure. */ dev->netdev_ops = &netdev_ops; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; dev->watchdog_timeo = TX_TIMEOUT; if (mtu) diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index f09c35d..5bf0581 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c @@ -1373,7 +1373,7 @@ netxen_setup_netdev(struct netxen_adapter *adapter, netxen_nic_change_mtu(netdev, netdev->mtu); - SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops); + netdev->ethtool_ops = &netxen_nic_ethtool_ops; netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | NETIF_F_RXCSUM; diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c index 2eabd44..b5d6bc1 100644 --- a/drivers/net/ethernet/qlogic/qla3xxx.c +++ b/drivers/net/ethernet/qlogic/qla3xxx.c @@ -3838,7 +3838,7 @@ static int ql3xxx_probe(struct pci_dev *pdev, /* Set driver entry points */ ndev->netdev_ops = &ql3xxx_netdev_ops; - SET_ETHTOOL_OPS(ndev, &ql3xxx_ethtool_ops); + ndev->ethtool_ops = &ql3xxx_ethtool_ops; ndev->watchdog_timeo = 5 * HZ; netif_napi_add(ndev, &qdev->napi, ql_poll, 64); diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index dbf7539..4bdbdca 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c @@ -2222,10 +2222,8 @@ qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, qlcnic_change_mtu(netdev, netdev->mtu); - if (qlcnic_sriov_vf_check(adapter)) - SET_ETHTOOL_OPS(netdev, &qlcnic_sriov_vf_ethtool_ops); - else - SET_ETHTOOL_OPS(netdev, &qlcnic_ethtool_ops); + netdev->ethtool_ops = (qlcnic_sriov_vf_check(adapter)) ? + &qlcnic_sriov_vf_ethtool_ops : &qlcnic_ethtool_ops; netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | NETIF_F_IPV6_CSUM | NETIF_F_GRO | @@ -2630,7 +2628,7 @@ err_out_disable_pdev: err_out_maintenance_mode: set_bit(__QLCNIC_MAINTENANCE_MODE, &adapter->state); netdev->netdev_ops = &qlcnic_netdev_failed_ops; - SET_ETHTOOL_OPS(netdev, &qlcnic_ethtool_failed_ops); + netdev->ethtool_ops = &qlcnic_ethtool_failed_ops; ahw->port_type = QLCNIC_XGBE; if (qlcnic_83xx_check(adapter)) diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c index 0a1d76a..79b86e9 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c @@ -4770,7 +4770,7 @@ static int qlge_probe(struct pci_dev *pdev, ndev->irq = pdev->irq; ndev->netdev_ops = &qlge_netdev_ops; - SET_ETHTOOL_OPS(ndev, &qlge_ethtool_ops); + ndev->ethtool_ops = &qlge_ethtool_ops; ndev->watchdog_timeo = 10 * HZ; err = register_netdev(ndev); diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index aa1c079..be425ad 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -7125,7 +7125,7 @@ rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) for (i = 0; i < ETH_ALEN; i++) dev->dev_addr[i] = RTL_R8(MAC0 + i); - SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops); + dev->ethtool_ops = &rtl8169_ethtool_ops; dev->watchdog_timeo = RTL8169_TX_TIMEOUT; netif_napi_add(dev, &tp->napi, rtl8169_poll, R8169_NAPI_WEIGHT); diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index 6a9509c..967314c 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -2843,7 +2843,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev) ndev->netdev_ops = &sh_eth_netdev_ops_tsu; else ndev->netdev_ops = &sh_eth_netdev_ops; - SET_ETHTOOL_OPS(ndev, &sh_eth_ethtool_ops); + ndev->ethtool_ops = &sh_eth_ethtool_ops; ndev->watchdog_timeo = TX_TIMEOUT; /* debug message level */ diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c index 0415fa5..c0981ae 100644 --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c @@ -520,5 +520,5 @@ static const struct ethtool_ops sxgbe_ethtool_ops = { void sxgbe_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &sxgbe_ethtool_ops); + netdev->ethtool_ops = &sxgbe_ethtool_ops; } diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index 63d595f..1e27404 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c @@ -2248,7 +2248,7 @@ static int efx_register_netdev(struct efx_nic *efx) } else { net_dev->netdev_ops = &efx_farch_netdev_ops; } - SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops); + net_dev->ethtool_ops = &efx_ethtool_ops; net_dev->gso_max_segs = EFX_TSO_MAX_SEGS; rtnl_lock(); diff --git a/drivers/net/ethernet/sis/sis190.c b/drivers/net/ethernet/sis/sis190.c index acbbe48..a863399 100644 --- a/drivers/net/ethernet/sis/sis190.c +++ b/drivers/net/ethernet/sis/sis190.c @@ -1877,7 +1877,7 @@ static int sis190_init_one(struct pci_dev *pdev, dev->netdev_ops = &sis190_netdev_ops; - SET_ETHTOOL_OPS(dev, &sis190_ethtool_ops); + dev->ethtool_ops = &sis190_ethtool_ops; dev->watchdog_timeo = SIS190_TX_TIMEOUT; spin_lock_init(&tp->lock); diff --git a/drivers/net/ethernet/smsc/smc91c92_cs.c b/drivers/net/ethernet/smsc/smc91c92_cs.c index c7a4868..6b33127 100644 --- a/drivers/net/ethernet/smsc/smc91c92_cs.c +++ b/drivers/net/ethernet/smsc/smc91c92_cs.c @@ -318,7 +318,7 @@ static int smc91c92_probe(struct pcmcia_device *link) /* The SMC91c92-specific entries in the device structure. */ dev->netdev_ops = &smc_netdev_ops; - SET_ETHTOOL_OPS(dev, ðtool_ops); + dev->ethtool_ops = ðtool_ops; dev->watchdog_timeo = TX_TIMEOUT; smc->mii_if.dev = dev; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c index c5f9cb8..c963394 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c @@ -784,5 +784,5 @@ static const struct ethtool_ops stmmac_ethtool_ops = { void stmmac_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &stmmac_ethtool_ops); + netdev->ethtool_ops = &stmmac_ethtool_ops; } diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c index 2ead877..38da73a 100644 --- a/drivers/net/ethernet/tehuti/tehuti.c +++ b/drivers/net/ethernet/tehuti/tehuti.c @@ -2413,7 +2413,7 @@ static void bdx_set_ethtool_ops(struct net_device *netdev) .get_ethtool_stats = bdx_get_ethtool_stats, }; - SET_ETHTOOL_OPS(netdev, &bdx_ethtool_ops); + netdev->ethtool_ops = &bdx_ethtool_ops; } /** diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 36aa109..6ecab3c 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -1975,7 +1975,7 @@ static int cpsw_probe_dual_emac(struct platform_device *pdev, ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; ndev->netdev_ops = &cpsw_netdev_ops; - SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); + ndev->ethtool_ops = &cpsw_ethtool_ops; netif_napi_add(ndev, &priv_sl2->napi, cpsw_poll, CPSW_POLL_WEIGHT); /* register the network device */ @@ -2204,7 +2204,7 @@ static int cpsw_probe(struct platform_device *pdev) ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; ndev->netdev_ops = &cpsw_netdev_ops; - SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); + ndev->ethtool_ops = &cpsw_ethtool_ops; netif_napi_add(ndev, &priv->napi, cpsw_poll, CPSW_POLL_WEIGHT); /* register the network device */ diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c index 8f0e69c..e76eae5 100644 --- a/drivers/net/ethernet/ti/davinci_emac.c +++ b/drivers/net/ethernet/ti/davinci_emac.c @@ -1980,7 +1980,7 @@ static int davinci_emac_probe(struct platform_device *pdev) } ndev->netdev_ops = &emac_netdev_ops; - SET_ETHTOOL_OPS(ndev, ðtool_ops); + ndev->ethtool_ops = ðtool_ops; netif_napi_add(ndev, &priv->napi, emac_poll, EMAC_POLL_WEIGHT); /* register the network device */ diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 31e55fb..2170db5 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -715,7 +715,7 @@ static int netvsc_probe(struct hv_device *dev, net->features = NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_SG | NETIF_F_RXCSUM | NETIF_F_IP_CSUM | NETIF_F_TSO; - SET_ETHTOOL_OPS(net, ðtool_ops); + net->ethtool_ops = ðtool_ops; SET_NETDEV_DEV(net, &dev->device); /* Notify the netvsc driver of the new device */ diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c index 63aa9d9..27536aa 100644 --- a/drivers/net/ntb_netdev.c +++ b/drivers/net/ntb_netdev.c @@ -348,7 +348,7 @@ static int ntb_netdev_probe(struct pci_dev *pdev) memcpy(ndev->dev_addr, ndev->perm_addr, ndev->addr_len); ndev->netdev_ops = &ntb_netdev_ops; - SET_ETHTOOL_OPS(ndev, &ntb_ethtool_ops); + ndev->ethtool_ops = &ntb_ethtool_ops; dev->qp = ntb_transport_create_queue(ndev, pdev, &ntb_netdev_handlers); if (!dev->qp) { diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c index a849718..dac7a0d 100644 --- a/drivers/net/rionet.c +++ b/drivers/net/rionet.c @@ -494,7 +494,7 @@ static int rionet_setup_netdev(struct rio_mport *mport, struct net_device *ndev) ndev->mtu = RIO_MAX_MSG_SIZE - 14; ndev->features = NETIF_F_LLTX; SET_NETDEV_DEV(ndev, &mport->dev); - SET_ETHTOOL_OPS(ndev, &rionet_ethtool_ops); + ndev->ethtool_ops = &rionet_ethtool_ops; spin_lock_init(&rnet->lock); spin_lock_init(&rnet->tx_lock); diff --git a/drivers/net/usb/catc.c b/drivers/net/usb/catc.c index 630caf4..8cfc3bb 100644 --- a/drivers/net/usb/catc.c +++ b/drivers/net/usb/catc.c @@ -793,7 +793,7 @@ static int catc_probe(struct usb_interface *intf, const struct usb_device_id *id netdev->netdev_ops = &catc_netdev_ops; netdev->watchdog_timeo = TX_TIMEOUT; - SET_ETHTOOL_OPS(netdev, &ops); + netdev->ethtool_ops = &ops; catc->usbdev = usbdev; catc->netdev = netdev; diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 660bd5e..a3a0586 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -2425,7 +2425,7 @@ static void hso_net_init(struct net_device *net) net->type = ARPHRD_NONE; net->mtu = DEFAULT_MTU - 14; net->tx_queue_len = 10; - SET_ETHTOOL_OPS(net, &ops); + net->ethtool_ops = &ops; /* and initialize the semaphore */ spin_lock_init(&hso_net->net_lock); diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c index 421934c..f725707 100644 --- a/drivers/net/usb/ipheth.c +++ b/drivers/net/usb/ipheth.c @@ -524,7 +524,7 @@ static int ipheth_probe(struct usb_interface *intf, usb_set_intfdata(intf, dev); SET_NETDEV_DEV(netdev, &intf->dev); - SET_ETHTOOL_OPS(netdev, &ops); + netdev->ethtool_ops = &ops; retval = register_netdev(netdev); if (retval) { diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c index a359d3b..dcb6d33 100644 --- a/drivers/net/usb/kaweth.c +++ b/drivers/net/usb/kaweth.c @@ -1171,7 +1171,7 @@ err_fw: netdev->netdev_ops = &kaweth_netdev_ops; netdev->watchdog_timeo = KAWETH_TX_TIMEOUT; netdev->mtu = le16_to_cpu(kaweth->configuration.segment_size); - SET_ETHTOOL_OPS(netdev, &ops); + netdev->ethtool_ops = &ops; /* kaweth is zeroed as part of alloc_netdev */ INIT_DELAYED_WORK(&kaweth->lowmem_work, kaweth_resubmit_tl); diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c index 03e8a15..f840802 100644 --- a/drivers/net/usb/pegasus.c +++ b/drivers/net/usb/pegasus.c @@ -1159,7 +1159,7 @@ static int pegasus_probe(struct usb_interface *intf, net->watchdog_timeo = PEGASUS_TX_TIMEOUT; net->netdev_ops = &pegasus_netdev_ops; - SET_ETHTOOL_OPS(net, &ops); + net->ethtool_ops = &ops; pegasus->mii.dev = net; pegasus->mii.mdio_read = mdio_read; pegasus->mii.mdio_write = mdio_write; diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 3fbfb08..9f91c7a 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -3452,7 +3452,7 @@ static int rtl8152_probe(struct usb_interface *intf, NETIF_F_TSO | NETIF_F_FRAGLIST | NETIF_F_IPV6_CSUM | NETIF_F_TSO6; - SET_ETHTOOL_OPS(netdev, &ops); + netdev->ethtool_ops = &ops; netif_set_gso_max_size(netdev, RTL_LIMITED_TSO_SIZE); tp->mii.dev = netdev; diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c index da2c458..6e87e57 100644 --- a/drivers/net/usb/rtl8150.c +++ b/drivers/net/usb/rtl8150.c @@ -878,7 +878,7 @@ static int rtl8150_probe(struct usb_interface *intf, dev->netdev = netdev; netdev->netdev_ops = &rtl8150_netdev_ops; netdev->watchdog_timeo = RTL8150_TX_TIMEOUT; - SET_ETHTOOL_OPS(netdev, &ops); + netdev->ethtool_ops = &ops; dev->intr_interval = 100; /* 100ms */ if (!alloc_all_urbs(dev)) { diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 7b68746..3f83359 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1646,7 +1646,7 @@ static int virtnet_probe(struct virtio_device *vdev) dev->netdev_ops = &virtnet_netdev; dev->features = NETIF_F_HIGHDMA; - SET_ETHTOOL_OPS(dev, &virtnet_ethtool_ops); + dev->ethtool_ops = &virtnet_ethtool_ops; SET_NETDEV_DEV(dev, &vdev->dev); /* Do we support "hardware" checksums? */ diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c index 600ab56..00e1202 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c @@ -635,5 +635,5 @@ static const struct ethtool_ops vmxnet3_ethtool_ops = { void vmxnet3_set_ethtool_ops(struct net_device *netdev) { - SET_ETHTOOL_OPS(netdev, &vmxnet3_ethtool_ops); + netdev->ethtool_ops = &vmxnet3_ethtool_ops; } diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 82355d5..457359c 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -2706,7 +2706,7 @@ static int vxlan_newlink(struct net *net, struct net_device *dev, return -EEXIST; } - SET_ETHTOOL_OPS(dev, &vxlan_ethtool_ops); + dev->ethtool_ops = &vxlan_ethtool_ops; /* create an fdb entry for a valid default destination */ if (!vxlan_addr_any(&vxlan->default_dst.remote_ip)) { diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index 67db34e..52919ad 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c @@ -882,7 +882,7 @@ void hostap_setup_dev(struct net_device *dev, local_info_t *local, dev->mtu = local->mtu; - SET_ETHTOOL_OPS(dev, &prism2_ethtool_ops); + dev->ethtool_ops = &prism2_ethtool_ops; } diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index ef05c5c..a755733 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c @@ -386,7 +386,7 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid, NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_TSO | NETIF_F_TSO6; dev->features = dev->hw_features | NETIF_F_RXCSUM; - SET_ETHTOOL_OPS(dev, &xenvif_ethtool_ops); + dev->ethtool_ops = &xenvif_ethtool_ops; dev->tx_queue_len = XENVIF_QUEUE_LENGTH; diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 158b5e6..895355d 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -1332,7 +1332,7 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev) */ netdev->features |= netdev->hw_features; - SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops); + netdev->ethtool_ops = &xennet_ethtool_ops; SET_NETDEV_DEV(netdev, &dev->dev); netif_set_gso_max_size(netdev, XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER); diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index 8dea3f1..047b4da 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c @@ -964,10 +964,9 @@ static int qeth_l2_setup_netdev(struct qeth_card *card) card->dev->watchdog_timeo = QETH_TX_TIMEOUT; card->dev->mtu = card->info.initial_mtu; card->dev->netdev_ops = &qeth_l2_netdev_ops; - if (card->info.type != QETH_CARD_TYPE_OSN) - SET_ETHTOOL_OPS(card->dev, &qeth_l2_ethtool_ops); - else - SET_ETHTOOL_OPS(card->dev, &qeth_l2_osn_ops); + card->dev->ethtool_ops + (card->info.type != QETH_CARD_TYPE_OSN) ? + &qeth_l2_ethtool_ops : &qeth_l2_osn_ops; card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; card->info.broadcast_capable = 1; qeth_l2_request_initial_mac(card); diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 3524d34..0a59d24 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -3298,7 +3298,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card) card->dev->ml_priv = card; card->dev->watchdog_timeo = QETH_TX_TIMEOUT; card->dev->mtu = card->info.initial_mtu; - SET_ETHTOOL_OPS(card->dev, &qeth_l3_ethtool_ops); + card->dev->ethtool_ops = &qeth_l3_ethtool_ops; card->dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c index d329cf3..15e0f4d 100644 --- a/drivers/staging/et131x/et131x.c +++ b/drivers/staging/et131x/et131x.c @@ -4604,7 +4604,7 @@ static int et131x_pci_setup(struct pci_dev *pdev, netdev->netdev_ops = &et131x_netdev_ops; SET_NETDEV_DEV(netdev, &pdev->dev); - SET_ETHTOOL_OPS(netdev, &et131x_ethtool_ops); + netdev->ethtool_ops = &et131x_ethtool_ops; adapter = et131x_adapter_init(netdev, pdev); diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c index d6421b9..a6158be 100644 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c @@ -2249,7 +2249,7 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link, ft1000InitProc(dev); ft1000_card_present = 1; - SET_ETHTOOL_OPS(dev, &ops); + dev->ethtool_ops = &ops; printk(KERN_INFO "ft1000: %s: addr 0x%04lx irq %d, MAC addr %pM\n", dev->name, dev->base_addr, dev->irq, dev->dev_addr); return dev; diff --git a/drivers/staging/netlogic/xlr_net.c b/drivers/staging/netlogic/xlr_net.c index c83e337..9d95761 100644 --- a/drivers/staging/netlogic/xlr_net.c +++ b/drivers/staging/netlogic/xlr_net.c @@ -1066,7 +1066,7 @@ static int xlr_net_probe(struct platform_device *pdev) xlr_set_rx_mode(ndev); priv->num_rx_desc += MAX_NUM_DESC_SPILL; - SET_ETHTOOL_OPS(ndev, &xlr_ethtool_ops); + ndev->ethtool_ops = &xlr_ethtool_ops; SET_NETDEV_DEV(ndev, &pdev->dev); /* Common registers, do one time initialization */ diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c index ff7214a..da9dd6b 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -469,7 +469,7 @@ int cvm_oct_common_init(struct net_device *dev) /* We do our own locking, Linux doesn't need to */ dev->features |= NETIF_F_LLTX; - SET_ETHTOOL_OPS(dev, &cvm_oct_ethtool_ops); + dev->ethtool_ops = &cvm_oct_ethtool_ops; cvm_oct_phy_setup_device(dev); cvm_oct_set_mac_filter(dev); diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c index b7d4f82..ce8e281 100644 --- a/drivers/usb/gadget/u_ether.c +++ b/drivers/usb/gadget/u_ether.c @@ -793,7 +793,7 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g, net->netdev_ops = ð_netdev_ops; - SET_ETHTOOL_OPS(net, &ops); + net->ethtool_ops = &ops; dev->gadget = g; SET_NETDEV_DEV(net, &g->dev); @@ -850,7 +850,7 @@ struct net_device *gether_setup_name_default(const char *netname) net->netdev_ops = ð_netdev_ops; - SET_ETHTOOL_OPS(net, &ops); + net->ethtool_ops = &ops; SET_NETDEV_DEVTYPE(net, &gadget_type); return net; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 7ed3a3a..06071f7 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -56,9 +56,6 @@ struct device; struct phy_device; /* 802.11 specific */ struct wireless_dev; - /* source back-compat hooks */ -#define SET_ETHTOOL_OPS(netdev,ops) \ - ( (netdev)->ethtool_ops = (ops) ) void netdev_set_default_ethtool_ops(struct net_device *dev, const struct ethtool_ops *ops); diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 744a59b..e7ee65d 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -884,7 +884,7 @@ static void batadv_softif_init_early(struct net_device *dev) /* generate random address */ eth_hw_addr_random(dev); - SET_ETHTOOL_OPS(dev, &batadv_ethtool_ops); + dev->ethtool_ops = &batadv_ethtool_ops; memset(priv, 0, sizeof(*priv)); } diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 3e2da2c..9212015 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -348,7 +348,7 @@ void br_dev_setup(struct net_device *dev) dev->netdev_ops = &br_netdev_ops; dev->destructor = br_dev_free; - SET_ETHTOOL_OPS(dev, &br_ethtool_ops); + dev->ethtool_ops = &br_ethtool_ops; SET_NETDEV_DEVTYPE(dev, &br_type); dev->tx_queue_len = 0; dev->priv_flags = IFF_EBRIDGE; diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 02c0e17..64c5af0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, return slave_dev; slave_dev->features = master->vlan_features; - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; eth_hw_addr_inherit(slave_dev, master); slave_dev->tx_queue_len = 0; diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c index 729c687..789af92 100644 --- a/net/openvswitch/vport-internal_dev.c +++ b/net/openvswitch/vport-internal_dev.c @@ -130,7 +130,7 @@ static void do_setup(struct net_device *netdev) netdev->priv_flags &= ~IFF_TX_SKB_SHARING; netdev->priv_flags |= IFF_LIVE_ADDR_CHANGE; netdev->destructor = internal_dev_destructor; - SET_ETHTOOL_OPS(netdev, &internal_dev_ethtool_ops); + netdev->ethtool_ops = &internal_dev_ethtool_ops; netdev->tx_queue_len = 0; netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST |
I think that it may be appropriate to submit this patch for linux-next instead of 3.15-rc4... On Thu, May 8, 2014 at 1:53 PM, Wilfried Klaebe <w-lkml@lebenslange-mailadresse.de> wrote:> Dave Miller mentioned he'd like to see SET_ETHTOOL_OPS gone. > This does that. > > Compile tested only, but I'd seriously wonder if this broke anything. > > Suggested-by: Dave Miller <davem@davemloft.net> > Signed-off-by: Wilfried Klaebe <w-lkml@lebenslange-mailadresse.de> > > --- > > Applies against v3.15-rc4. > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c > index c4b3940..078cadd 100644 > --- a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c > +++ b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c > @@ -105,5 +105,5 @@ static const struct ethtool_ops ipoib_ethtool_ops = { > > void ipoib_set_ethtool_ops(struct net_device *dev) > { > - SET_ETHTOOL_OPS(dev, &ipoib_ethtool_ops); > + dev->ethtool_ops = &ipoib_ethtool_ops; > } > diff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c > index 35df0b9..a968654 100644 > --- a/drivers/net/ethernet/3com/3c509.c > +++ b/drivers/net/ethernet/3com/3c509.c > @@ -534,7 +534,7 @@ static int el3_common_init(struct net_device *dev) > /* The EL3-specific entries in the device structure. */ > dev->netdev_ops = &netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > > err = register_netdev(dev); > if (err) { > diff --git a/drivers/net/ethernet/3com/3c589_cs.c b/drivers/net/ethernet/3com/3c589_cs.c > index 063557e..f18647c 100644 > --- a/drivers/net/ethernet/3com/3c589_cs.c > +++ b/drivers/net/ethernet/3com/3c589_cs.c > @@ -218,7 +218,7 @@ static int tc589_probe(struct pcmcia_device *link) > dev->netdev_ops = &el3_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > > return tc589_config(link); > } > diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c > index 465cc71..e13b046 100644 > --- a/drivers/net/ethernet/3com/typhoon.c > +++ b/drivers/net/ethernet/3com/typhoon.c > @@ -2435,7 +2435,7 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > netif_napi_add(dev, &tp->napi, typhoon_poll, 16); > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, &typhoon_ethtool_ops); > + dev->ethtool_ops = &typhoon_ethtool_ops; > > /* We can handle scatter gather, up to 16 entries, and > * we can do IP checksumming (only version 4, doh...) > diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c > index 171d73c..40dbbf7 100644 > --- a/drivers/net/ethernet/adaptec/starfire.c > +++ b/drivers/net/ethernet/adaptec/starfire.c > @@ -784,7 +784,7 @@ static int starfire_init_one(struct pci_dev *pdev, > > dev->netdev_ops = &netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > > netif_napi_add(dev, &np->napi, netdev_poll, max_interrupt_work); > > diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c > index 1517e9df..9a6991b 100644 > --- a/drivers/net/ethernet/alteon/acenic.c > +++ b/drivers/net/ethernet/alteon/acenic.c > @@ -476,7 +476,7 @@ static int acenic_probe_one(struct pci_dev *pdev, > dev->watchdog_timeo = 5*HZ; > > dev->netdev_ops = &ace_netdev_ops; > - SET_ETHTOOL_OPS(dev, &ace_ethtool_ops); > + dev->ethtool_ops = &ace_ethtool_ops; > > /* we only display this string ONCE */ > if (!boards_found) > diff --git a/drivers/net/ethernet/altera/altera_tse_ethtool.c b/drivers/net/ethernet/altera/altera_tse_ethtool.c > index 319ca74..8ac4bd2 100644 > --- a/drivers/net/ethernet/altera/altera_tse_ethtool.c > +++ b/drivers/net/ethernet/altera/altera_tse_ethtool.c > @@ -231,5 +231,5 @@ static const struct ethtool_ops tse_ethtool_ops = { > > void altera_tse_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &tse_ethtool_ops); > + netdev->ethtool_ops = &tse_ethtool_ops; > } > diff --git a/drivers/net/ethernet/amd/amd8111e.c b/drivers/net/ethernet/amd/amd8111e.c > index 26efaaa..068dc7c 100644 > --- a/drivers/net/ethernet/amd/amd8111e.c > +++ b/drivers/net/ethernet/amd/amd8111e.c > @@ -1900,7 +1900,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev, > > /* Initialize driver entry points */ > dev->netdev_ops = &amd8111e_netdev_ops; > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > dev->irq =pdev->irq; > dev->watchdog_timeo = AMD8111E_TX_TIMEOUT; > netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32); > diff --git a/drivers/net/ethernet/amd/au1000_eth.c b/drivers/net/ethernet/amd/au1000_eth.c > index a2bd91e..a78e4c1 100644 > --- a/drivers/net/ethernet/amd/au1000_eth.c > +++ b/drivers/net/ethernet/amd/au1000_eth.c > @@ -1229,7 +1229,7 @@ static int au1000_probe(struct platform_device *pdev) > dev->base_addr = base->start; > dev->irq = irq; > dev->netdev_ops = &au1000_netdev_ops; > - SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops); > + dev->ethtool_ops = &au1000_ethtool_ops; > dev->watchdog_timeo = ETH_TX_TIMEOUT; > > /* > diff --git a/drivers/net/ethernet/amd/nmclan_cs.c b/drivers/net/ethernet/amd/nmclan_cs.c > index 08569fe..abf3b15 100644 > --- a/drivers/net/ethernet/amd/nmclan_cs.c > +++ b/drivers/net/ethernet/amd/nmclan_cs.c > @@ -457,7 +457,7 @@ static int nmclan_probe(struct pcmcia_device *link) > lp->tx_free_frames=AM2150_MAX_TX_FRAMES; > > dev->netdev_ops = &mace_netdev_ops; > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > return nmclan_config(link); > diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c > index 17bb9ce..49faa97 100644 > --- a/drivers/net/ethernet/atheros/alx/main.c > +++ b/drivers/net/ethernet/atheros/alx/main.c > @@ -1302,7 +1302,7 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > } > > netdev->netdev_ops = &alx_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &alx_ethtool_ops); > + netdev->ethtool_ops = &alx_ethtool_ops; > netdev->irq = pdev->irq; > netdev->watchdog_timeo = ALX_WATCHDOG_TIME; > > diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c > index 859ea84..ecacaae 100644 > --- a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c > +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c > @@ -305,5 +305,5 @@ static const struct ethtool_ops atl1c_ethtool_ops = { > > void atl1c_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &atl1c_ethtool_ops); > + netdev->ethtool_ops = &atl1c_ethtool_ops; > } > diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c > index 82b2386..206e9b7 100644 > --- a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c > +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c > @@ -388,5 +388,5 @@ static const struct ethtool_ops atl1e_ethtool_ops = { > > void atl1e_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &atl1e_ethtool_ops); > + netdev->ethtool_ops = &atl1e_ethtool_ops; > } > diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c > index 78befb5..2587fed 100644 > --- a/drivers/net/ethernet/atheros/atlx/atl2.c > +++ b/drivers/net/ethernet/atheros/atlx/atl2.c > @@ -1396,7 +1396,7 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > atl2_setup_pcicmd(pdev); > > netdev->netdev_ops = &atl2_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &atl2_ethtool_ops); > + netdev->ethtool_ops = &atl2_ethtool_ops; > netdev->watchdog_timeo = 5 * HZ; > strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); > > diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c > index 05ba625..ca5a20a 100644 > --- a/drivers/net/ethernet/broadcom/b44.c > +++ b/drivers/net/ethernet/broadcom/b44.c > @@ -2380,7 +2380,7 @@ static int b44_init_one(struct ssb_device *sdev, > netif_napi_add(dev, &bp->napi, b44_poll, 64); > dev->watchdog_timeo = B44_TX_TIMEOUT; > dev->irq = sdev->irq; > - SET_ETHTOOL_OPS(dev, &b44_ethtool_ops); > + dev->ethtool_ops = &b44_ethtool_ops; > > err = ssb_bus_powerup(sdev->bus, 0); > if (err) { > diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c > index a7d11f5..1e7bba9c 100644 > --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c > +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c > @@ -1898,7 +1898,7 @@ static int bcm_enet_probe(struct platform_device *pdev) > dev->netdev_ops = &bcm_enet_ops; > netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16); > > - SET_ETHTOOL_OPS(dev, &bcm_enet_ethtool_ops); > + dev->ethtool_ops = &bcm_enet_ethtool_ops; > SET_NETDEV_DEV(dev, &pdev->dev); > > ret = register_netdev(dev); > @@ -2784,7 +2784,7 @@ static int bcm_enetsw_probe(struct platform_device *pdev) > /* register netdevice */ > dev->netdev_ops = &bcm_enetsw_ops; > netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16); > - SET_ETHTOOL_OPS(dev, &bcm_enetsw_ethtool_ops); > + dev->ethtool_ops = &bcm_enetsw_ethtool_ops; > SET_NETDEV_DEV(dev, &pdev->dev); > > spin_lock_init(&priv->enetsw_mdio_lock); > diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c > index 0297a79..05c6af6 100644 > --- a/drivers/net/ethernet/broadcom/bgmac.c > +++ b/drivers/net/ethernet/broadcom/bgmac.c > @@ -1436,7 +1436,7 @@ static int bgmac_probe(struct bcma_device *core) > return -ENOMEM; > net_dev->netdev_ops = &bgmac_netdev_ops; > net_dev->irq = core->irq; > - SET_ETHTOOL_OPS(net_dev, &bgmac_ethtool_ops); > + net_dev->ethtool_ops = &bgmac_ethtool_ops; > bgmac = netdev_priv(net_dev); > bgmac->net_dev = net_dev; > bgmac->core = core; > diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c > index b6de05e..0322409 100644 > --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c > +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c > @@ -3506,8 +3506,6 @@ static const struct ethtool_ops bnx2x_vf_ethtool_ops = { > > void bnx2x_set_ethtool_ops(struct bnx2x *bp, struct net_device *netdev) > { > - if (IS_PF(bp)) > - SET_ETHTOOL_OPS(netdev, &bnx2x_ethtool_ops); > - else /* vf */ > - SET_ETHTOOL_OPS(netdev, &bnx2x_vf_ethtool_ops); > + netdev->ethtool_ops = (IS_PF(bp)) ? > + &bnx2x_ethtool_ops : &bnx2x_vf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c > index 0966bd0..5ba1cfb 100644 > --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c > +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c > @@ -2481,7 +2481,7 @@ static int bcmgenet_probe(struct platform_device *pdev) > dev_set_drvdata(&pdev->dev, dev); > ether_addr_copy(dev->dev_addr, macaddr); > dev->watchdog_timeo = 2 * HZ; > - SET_ETHTOOL_OPS(dev, &bcmgenet_ethtool_ops); > + dev->ethtool_ops = &bcmgenet_ethtool_ops; > dev->netdev_ops = &bcmgenet_netdev_ops; > netif_napi_add(dev, &priv->napi, bcmgenet_poll, 64); > > diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c > index f9e1508..adca62b 100644 > --- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c > +++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c > @@ -1137,5 +1137,5 @@ static const struct ethtool_ops bnad_ethtool_ops = { > void > bnad_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &bnad_ethtool_ops); > + netdev->ethtool_ops = &bnad_ethtool_ops; > } > diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c > index 521dfea..25d6b2a 100644 > --- a/drivers/net/ethernet/calxeda/xgmac.c > +++ b/drivers/net/ethernet/calxeda/xgmac.c > @@ -1737,7 +1737,7 @@ static int xgmac_probe(struct platform_device *pdev) > platform_set_drvdata(pdev, ndev); > ether_setup(ndev); > ndev->netdev_ops = &xgmac_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &xgmac_ethtool_ops); > + ndev->ethtool_ops = &xgmac_ethtool_ops; > spin_lock_init(&priv->stats_lock); > INIT_WORK(&priv->tx_timeout_work, xgmac_tx_timeout_work); > > diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c > index 0fe7ff7..c1b2c1d 100644 > --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c > +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c > @@ -1100,7 +1100,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > > netif_napi_add(netdev, &adapter->napi, t1_poll, 64); > > - SET_ETHTOOL_OPS(netdev, &t1_ethtool_ops); > + netdev->ethtool_ops = &t1_ethtool_ops; > } > > if (t1_init_sw_modules(adapter, bi) < 0) { > diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c > index 07bbb71..3ed5079 100644 > --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c > @@ -3291,7 +3291,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > netdev->features |= NETIF_F_HIGHDMA; > > netdev->netdev_ops = &cxgb_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); > + netdev->ethtool_ops = &cxgb_ethtool_ops; > } > > pci_set_drvdata(pdev, adapter); > diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > index 6fe5891..7c61f89 100644 > --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > @@ -6074,7 +6074,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > netdev->priv_flags |= IFF_UNICAST_FLT; > > netdev->netdev_ops = &cxgb4_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); > + netdev->ethtool_ops = &cxgb_ethtool_ops; > } > > pci_set_drvdata(pdev, adapter); > diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c > index 5285928..ff1cdd1 100644 > --- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c > @@ -2664,7 +2664,7 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev, > netdev->priv_flags |= IFF_UNICAST_FLT; > > netdev->netdev_ops = &cxgb4vf_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &cxgb4vf_ethtool_ops); > + netdev->ethtool_ops = &cxgb4vf_ethtool_ops; > > /* > * Initialize the hardware/software state for the port. > diff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c b/drivers/net/ethernet/cisco/enic/enic_ethtool.c > index 47e3562..58a8c67 100644 > --- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c > +++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c > @@ -253,5 +253,5 @@ static const struct ethtool_ops enic_ethtool_ops = { > > void enic_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &enic_ethtool_ops); > + netdev->ethtool_ops = &enic_ethtool_ops; > } > diff --git a/drivers/net/ethernet/dec/tulip/tulip_core.c b/drivers/net/ethernet/dec/tulip/tulip_core.c > index 1642de7..8616608 100644 > --- a/drivers/net/ethernet/dec/tulip/tulip_core.c > +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c > @@ -1703,7 +1703,7 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > #ifdef CONFIG_TULIP_NAPI > netif_napi_add(dev, &tp->napi, tulip_poll, 16); > #endif > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > > if (register_netdev(dev)) > goto err_out_free_ring; > diff --git a/drivers/net/ethernet/dlink/dl2k.c b/drivers/net/ethernet/dlink/dl2k.c > index 4fb756d..2324f2d 100644 > --- a/drivers/net/ethernet/dlink/dl2k.c > +++ b/drivers/net/ethernet/dlink/dl2k.c > @@ -227,7 +227,7 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent) > } > dev->netdev_ops = &netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > #if 0 > dev->features = NETIF_F_IP_CSUM; > #endif > diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c > index d9e5ca0..433c1e1 100644 > --- a/drivers/net/ethernet/dlink/sundance.c > +++ b/drivers/net/ethernet/dlink/sundance.c > @@ -577,7 +577,7 @@ static int sundance_probe1(struct pci_dev *pdev, > > /* The chip-specific entries in the device structure. */ > dev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > pci_set_drvdata(pdev, dev); > diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c > index a186454..9a9e7c7 100644 > --- a/drivers/net/ethernet/emulex/benet/be_main.c > +++ b/drivers/net/ethernet/emulex/benet/be_main.c > @@ -4301,7 +4301,7 @@ static void be_netdev_init(struct net_device *netdev) > > netdev->netdev_ops = &be_netdev_ops; > > - SET_ETHTOOL_OPS(netdev, &be_ethtool_ops); > + netdev->ethtool_ops = &be_ethtool_ops; > } > > static void be_unmap_pci_bars(struct be_adapter *adapter) > diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c > index 68069ea..c77fa4a 100644 > --- a/drivers/net/ethernet/faraday/ftgmac100.c > +++ b/drivers/net/ethernet/faraday/ftgmac100.c > @@ -1210,7 +1210,7 @@ static int ftgmac100_probe(struct platform_device *pdev) > > SET_NETDEV_DEV(netdev, &pdev->dev); > > - SET_ETHTOOL_OPS(netdev, &ftgmac100_ethtool_ops); > + netdev->ethtool_ops = &ftgmac100_ethtool_ops; > netdev->netdev_ops = &ftgmac100_netdev_ops; > netdev->features = NETIF_F_IP_CSUM | NETIF_F_GRO; > > diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c > index 8be5b40..4ff1adc 100644 > --- a/drivers/net/ethernet/faraday/ftmac100.c > +++ b/drivers/net/ethernet/faraday/ftmac100.c > @@ -1085,7 +1085,7 @@ static int ftmac100_probe(struct platform_device *pdev) > } > > SET_NETDEV_DEV(netdev, &pdev->dev); > - SET_ETHTOOL_OPS(netdev, &ftmac100_ethtool_ops); > + netdev->ethtool_ops = &ftmac100_ethtool_ops; > netdev->netdev_ops = &ftmac100_netdev_ops; > > platform_set_drvdata(pdev, netdev); > diff --git a/drivers/net/ethernet/freescale/ucc_geth_ethtool.c b/drivers/net/ethernet/freescale/ucc_geth_ethtool.c > index 413329e..cc83350 100644 > --- a/drivers/net/ethernet/freescale/ucc_geth_ethtool.c > +++ b/drivers/net/ethernet/freescale/ucc_geth_ethtool.c > @@ -417,5 +417,5 @@ static const struct ethtool_ops uec_ethtool_ops = { > > void uec_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &uec_ethtool_ops); > + netdev->ethtool_ops = &uec_ethtool_ops; > } > diff --git a/drivers/net/ethernet/fujitsu/fmvj18x_cs.c b/drivers/net/ethernet/fujitsu/fmvj18x_cs.c > index 7becab1..cfe7a74 100644 > --- a/drivers/net/ethernet/fujitsu/fmvj18x_cs.c > +++ b/drivers/net/ethernet/fujitsu/fmvj18x_cs.c > @@ -256,7 +256,7 @@ static int fmvj18x_probe(struct pcmcia_device *link) > dev->netdev_ops = &fjn_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > > return fmvj18x_config(link); > } /* fmvj18x_attach */ > diff --git a/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c b/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c > index 95837b9..6055e3e 100644 > --- a/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c > +++ b/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c > @@ -278,5 +278,5 @@ static const struct ethtool_ops ehea_ethtool_ops = { > > void ehea_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ehea_ethtool_ops); > + netdev->ethtool_ops = &ehea_ethtool_ops; > } > diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c > index ae342fd..87bd953 100644 > --- a/drivers/net/ethernet/ibm/emac/core.c > +++ b/drivers/net/ethernet/ibm/emac/core.c > @@ -2879,7 +2879,7 @@ static int emac_probe(struct platform_device *ofdev) > dev->commac.ops = &emac_commac_sg_ops; > } else > ndev->netdev_ops = &emac_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &emac_ethtool_ops); > + ndev->ethtool_ops = &emac_ethtool_ops; > > netif_carrier_off(ndev); > > diff --git a/drivers/net/ethernet/icplus/ipg.c b/drivers/net/ethernet/icplus/ipg.c > index 25045ae..5727779 100644 > --- a/drivers/net/ethernet/icplus/ipg.c > +++ b/drivers/net/ethernet/icplus/ipg.c > @@ -2245,7 +2245,7 @@ static int ipg_probe(struct pci_dev *pdev, const struct pci_device_id *id) > */ > dev->netdev_ops = &ipg_netdev_ops; > SET_NETDEV_DEV(dev, &pdev->dev); > - SET_ETHTOOL_OPS(dev, &ipg_ethtool_ops); > + dev->ethtool_ops = &ipg_ethtool_ops; > > rc = pci_request_regions(pdev, DRV_NAME); > if (rc) > diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c > index b56461c..9d979d7 100644 > --- a/drivers/net/ethernet/intel/e100.c > +++ b/drivers/net/ethernet/intel/e100.c > @@ -2854,7 +2854,7 @@ static int e100_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > netdev->hw_features |= NETIF_F_RXALL; > > netdev->netdev_ops = &e100_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &e100_ethtool_ops); > + netdev->ethtool_ops = &e100_ethtool_ops; > netdev->watchdog_timeo = E100_WATCHDOG_PERIOD; > strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); > > diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c > index 73a8aee..341889a 100644 > --- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c > +++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c > @@ -1905,5 +1905,5 @@ static const struct ethtool_ops e1000_ethtool_ops = { > > void e1000_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops); > + netdev->ethtool_ops = &e1000_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c > index cad250b..d9f8a2d 100644 > --- a/drivers/net/ethernet/intel/e1000e/ethtool.c > +++ b/drivers/net/ethernet/intel/e1000e/ethtool.c > @@ -2315,5 +2315,5 @@ static const struct ethtool_ops e1000_ethtool_ops = { > > void e1000e_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops); > + netdev->ethtool_ops = &e1000_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > index 03d99cb..7673f86 100644 > --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > @@ -1692,5 +1692,5 @@ static const struct ethtool_ops i40e_ethtool_ops = { > > void i40e_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &i40e_ethtool_ops); > + netdev->ethtool_ops = &i40e_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c > index 8b0db1c..4defd51 100644 > --- a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c > @@ -389,5 +389,5 @@ static struct ethtool_ops i40evf_ethtool_ops = { > **/ > void i40evf_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &i40evf_ethtool_ops); > + netdev->ethtool_ops = &i40evf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c > index e5570ac..30b76e1 100644 > --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c > +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c > @@ -3029,5 +3029,5 @@ static const struct ethtool_ops igb_ethtool_ops = { > > void igb_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &igb_ethtool_ops); > + netdev->ethtool_ops = &igb_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/igbvf/ethtool.c b/drivers/net/ethernet/intel/igbvf/ethtool.c > index 90eef07..f58170b 100644 > --- a/drivers/net/ethernet/intel/igbvf/ethtool.c > +++ b/drivers/net/ethernet/intel/igbvf/ethtool.c > @@ -476,5 +476,5 @@ static const struct ethtool_ops igbvf_ethtool_ops = { > > void igbvf_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &igbvf_ethtool_ops); > + netdev->ethtool_ops = &igbvf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c > index dbb7dd2..1da2d98 100644 > --- a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c > +++ b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c > @@ -656,5 +656,5 @@ static const struct ethtool_ops ixgb_ethtool_ops = { > > void ixgb_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ixgb_ethtool_ops); > + netdev->ethtool_ops = &ixgb_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c > index 6c55c14..31d7268 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c > @@ -3099,5 +3099,5 @@ static const struct ethtool_ops ixgbe_ethtool_ops = { > > void ixgbe_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ixgbe_ethtool_ops); > + netdev->ethtool_ops = &ixgbe_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c > index 1baecb6..a757f07 100644 > --- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c > +++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c > @@ -813,5 +813,5 @@ static const struct ethtool_ops ixgbevf_ethtool_ops = { > > void ixgbevf_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ixgbevf_ethtool_ops); > + netdev->ethtool_ops = &ixgbevf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c > index b7b8d74..df1d1b9 100644 > --- a/drivers/net/ethernet/marvell/mv643xx_eth.c > +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c > @@ -2889,7 +2889,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev) > if (err) > goto out; > > - SET_ETHTOOL_OPS(dev, &mv643xx_eth_ethtool_ops); > + dev->ethtool_ops = &mv643xx_eth_ethtool_ops; > > init_pscr(mp, pd->speed, pd->duplex); > > diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c > index 14786c8..72bc47f 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -2813,7 +2813,7 @@ static int mvneta_probe(struct platform_device *pdev) > dev->watchdog_timeo = 5 * HZ; > dev->netdev_ops = &mvneta_netdev_ops; > > - SET_ETHTOOL_OPS(dev, &mvneta_eth_tool_ops); > + dev->ethtool_ops = &mvneta_eth_tool_ops; > > pp = netdev_priv(dev); > > diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c > index b358c2f..8f5aa7c 100644 > --- a/drivers/net/ethernet/marvell/pxa168_eth.c > +++ b/drivers/net/ethernet/marvell/pxa168_eth.c > @@ -1488,7 +1488,7 @@ static int pxa168_eth_probe(struct platform_device *pdev) > dev->netdev_ops = &pxa168_eth_netdev_ops; > dev->watchdog_timeo = 2 * HZ; > dev->base_addr = 0; > - SET_ETHTOOL_OPS(dev, &pxa168_ethtool_ops); > + dev->ethtool_ops = &pxa168_ethtool_ops; > > INIT_WORK(&pep->tx_timeout_task, pxa168_eth_tx_timeout_task); > > diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c > index b811064..6969338 100644 > --- a/drivers/net/ethernet/marvell/sky2.c > +++ b/drivers/net/ethernet/marvell/sky2.c > @@ -4760,7 +4760,7 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port, > > SET_NETDEV_DEV(dev, &hw->pdev->dev); > dev->irq = hw->pdev->irq; > - SET_ETHTOOL_OPS(dev, &sky2_ethtool_ops); > + dev->ethtool_ops = &sky2_ethtool_ops; > dev->watchdog_timeo = TX_WATCHDOG; > dev->netdev_ops = &sky2_netdev_ops[port]; > > diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > index 7e4b172..36af5e7 100644 > --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > @@ -2539,7 +2539,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, > netif_set_real_num_tx_queues(dev, priv->tx_ring_num); > netif_set_real_num_rx_queues(dev, priv->rx_ring_num); > > - SET_ETHTOOL_OPS(dev, &mlx4_en_ethtool_ops); > + dev->ethtool_ops = &mlx4_en_ethtool_ops; > > /* > * Set driver features > diff --git a/drivers/net/ethernet/micrel/ks8695net.c b/drivers/net/ethernet/micrel/ks8695net.c > index 16435b3..6c7c78ba 100644 > --- a/drivers/net/ethernet/micrel/ks8695net.c > +++ b/drivers/net/ethernet/micrel/ks8695net.c > @@ -1504,15 +1504,15 @@ ks8695_probe(struct platform_device *pdev) > if (ksp->phyiface_regs && ksp->link_irq == -1) { > ks8695_init_switch(ksp); > ksp->dtype = KS8695_DTYPE_LAN; > - SET_ETHTOOL_OPS(ndev, &ks8695_ethtool_ops); > + ndev->ethtool_ops = &ks8695_ethtool_ops; > } else if (ksp->phyiface_regs && ksp->link_irq != -1) { > ks8695_init_wan_phy(ksp); > ksp->dtype = KS8695_DTYPE_WAN; > - SET_ETHTOOL_OPS(ndev, &ks8695_wan_ethtool_ops); > + ndev->ethtool_ops = &ks8695_wan_ethtool_ops; > } else { > /* No initialisation since HPNA does not have a PHY */ > ksp->dtype = KS8695_DTYPE_HPNA; > - SET_ETHTOOL_OPS(ndev, &ks8695_ethtool_ops); > + ndev->ethtool_ops = &ks8695_ethtool_ops; > } > > /* And bring up the net_device with the net core */ > diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c > index e0c92e0..13767eb 100644 > --- a/drivers/net/ethernet/micrel/ks8851.c > +++ b/drivers/net/ethernet/micrel/ks8851.c > @@ -1471,7 +1471,7 @@ static int ks8851_probe(struct spi_device *spi) > > skb_queue_head_init(&ks->txq); > > - SET_ETHTOOL_OPS(ndev, &ks8851_ethtool_ops); > + ndev->ethtool_ops = &ks8851_ethtool_ops; > SET_NETDEV_DEV(ndev, &spi->dev); > > spi_set_drvdata(spi, ks); > diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c > index 14ac0e2..4b9592c1 100644 > --- a/drivers/net/ethernet/micrel/ksz884x.c > +++ b/drivers/net/ethernet/micrel/ksz884x.c > @@ -7106,7 +7106,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id) > } > > dev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > if (register_netdev(dev)) > goto pcidev_init_reg_err; > port_set_power_saving(port, true); > diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c > index c7b40aa..b1b5f66 100644 > --- a/drivers/net/ethernet/microchip/enc28j60.c > +++ b/drivers/net/ethernet/microchip/enc28j60.c > @@ -1593,7 +1593,7 @@ static int enc28j60_probe(struct spi_device *spi) > dev->irq = spi->irq; > dev->netdev_ops = &enc28j60_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); > + dev->ethtool_ops = &enc28j60_ethtool_ops; > > enc28j60_lowpower(priv, true); > > diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c > index 130f6b2..f3d5d79 100644 > --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c > +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c > @@ -4112,7 +4112,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > setup_timer(&mgp->watchdog_timer, myri10ge_watchdog_timer, > (unsigned long)mgp); > > - SET_ETHTOOL_OPS(netdev, &myri10ge_ethtool_ops); > + netdev->ethtool_ops = &myri10ge_ethtool_ops; > INIT_WORK(&mgp->watchdog_work, myri10ge_watchdog); > status = register_netdev(netdev); > if (status != 0) { > diff --git a/drivers/net/ethernet/natsemi/natsemi.c b/drivers/net/ethernet/natsemi/natsemi.c > index 64ec2a4..291fba8 100644 > --- a/drivers/net/ethernet/natsemi/natsemi.c > +++ b/drivers/net/ethernet/natsemi/natsemi.c > @@ -927,7 +927,7 @@ static int natsemi_probe1(struct pci_dev *pdev, const struct pci_device_id *ent) > dev->netdev_ops = &natsemi_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > > if (mtu) > dev->mtu = mtu; > diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c > index dbccf1d..19bb824 100644 > --- a/drivers/net/ethernet/natsemi/ns83820.c > +++ b/drivers/net/ethernet/natsemi/ns83820.c > @@ -2030,7 +2030,7 @@ static int ns83820_init_one(struct pci_dev *pci_dev, > pci_dev->subsystem_vendor, pci_dev->subsystem_device); > > ndev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(ndev, &ops); > + ndev->ethtool_ops = &ops; > ndev->watchdog_timeo = 5 * HZ; > pci_set_drvdata(pci_dev, ndev); > > diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c > index a2844ff..190538d 100644 > --- a/drivers/net/ethernet/neterion/s2io.c > +++ b/drivers/net/ethernet/neterion/s2io.c > @@ -7919,7 +7919,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) > > /* Driver entry points */ > dev->netdev_ops = &s2io_netdev_ops; > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | > NETIF_F_TSO | NETIF_F_TSO6 | > NETIF_F_RXCSUM | NETIF_F_LRO; > diff --git a/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c b/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c > index f8f0738..ddcc81a 100644 > --- a/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c > +++ b/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c > @@ -1128,5 +1128,5 @@ static const struct ethtool_ops vxge_ethtool_ops = { > > void vxge_initialize_ethtool_ops(struct net_device *ndev) > { > - SET_ETHTOOL_OPS(ndev, &vxge_ethtool_ops); > + ndev->ethtool_ops = &vxge_ethtool_ops; > } > diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c > index fddb464..e8235c5 100644 > --- a/drivers/net/ethernet/nvidia/forcedeth.c > +++ b/drivers/net/ethernet/nvidia/forcedeth.c > @@ -5766,7 +5766,7 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) > dev->netdev_ops = &nv_netdev_ops_optimized; > > netif_napi_add(dev, &np->napi, nv_napi_poll, RX_WORK_PER_LOOP); > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > dev->watchdog_timeo = NV_WATCHDOG_TIMEO; > > pci_set_drvdata(pci_dev, dev); > diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c > index 826f0cc..114d2fe 100644 > --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c > +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c > @@ -508,5 +508,5 @@ static const struct ethtool_ops pch_gbe_ethtool_ops = { > > void pch_gbe_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &pch_gbe_ethtool_ops); > + netdev->ethtool_ops = &pch_gbe_ethtool_ops; > } > diff --git a/drivers/net/ethernet/packetengines/hamachi.c b/drivers/net/ethernet/packetengines/hamachi.c > index b6bdeb3..9a997e4 100644 > --- a/drivers/net/ethernet/packetengines/hamachi.c > +++ b/drivers/net/ethernet/packetengines/hamachi.c > @@ -724,10 +724,8 @@ static int hamachi_init_one(struct pci_dev *pdev, > > /* The Hamachi-specific entries in the device structure. */ > dev->netdev_ops = &hamachi_netdev_ops; > - if (chip_tbl[hmp->chip_id].flags & CanHaveMII) > - SET_ETHTOOL_OPS(dev, ðtool_ops); > - else > - SET_ETHTOOL_OPS(dev, ðtool_ops_no_mii); > + dev->ethtool_ops = (chip_tbl[hmp->chip_id].flags & CanHaveMII) ? > + ðtool_ops : ðtool_ops_no_mii; > dev->watchdog_timeo = TX_TIMEOUT; > if (mtu) > dev->mtu = mtu; > diff --git a/drivers/net/ethernet/packetengines/yellowfin.c b/drivers/net/ethernet/packetengines/yellowfin.c > index 9a6cb48..69a8dc0 100644 > --- a/drivers/net/ethernet/packetengines/yellowfin.c > +++ b/drivers/net/ethernet/packetengines/yellowfin.c > @@ -472,7 +472,7 @@ static int yellowfin_init_one(struct pci_dev *pdev, > > /* The Yellowfin-specific entries in the device structure. */ > dev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > if (mtu) > diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c > index f09c35d..5bf0581 100644 > --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c > +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c > @@ -1373,7 +1373,7 @@ netxen_setup_netdev(struct netxen_adapter *adapter, > > netxen_nic_change_mtu(netdev, netdev->mtu); > > - SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops); > + netdev->ethtool_ops = &netxen_nic_ethtool_ops; > > netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | > NETIF_F_RXCSUM; > diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c > index 2eabd44..b5d6bc1 100644 > --- a/drivers/net/ethernet/qlogic/qla3xxx.c > +++ b/drivers/net/ethernet/qlogic/qla3xxx.c > @@ -3838,7 +3838,7 @@ static int ql3xxx_probe(struct pci_dev *pdev, > > /* Set driver entry points */ > ndev->netdev_ops = &ql3xxx_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &ql3xxx_ethtool_ops); > + ndev->ethtool_ops = &ql3xxx_ethtool_ops; > ndev->watchdog_timeo = 5 * HZ; > > netif_napi_add(ndev, &qdev->napi, ql_poll, 64); > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > index dbf7539..4bdbdca 100644 > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > @@ -2222,10 +2222,8 @@ qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, > > qlcnic_change_mtu(netdev, netdev->mtu); > > - if (qlcnic_sriov_vf_check(adapter)) > - SET_ETHTOOL_OPS(netdev, &qlcnic_sriov_vf_ethtool_ops); > - else > - SET_ETHTOOL_OPS(netdev, &qlcnic_ethtool_ops); > + netdev->ethtool_ops = (qlcnic_sriov_vf_check(adapter)) ? > + &qlcnic_sriov_vf_ethtool_ops : &qlcnic_ethtool_ops; > > netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | > NETIF_F_IPV6_CSUM | NETIF_F_GRO | > @@ -2630,7 +2628,7 @@ err_out_disable_pdev: > err_out_maintenance_mode: > set_bit(__QLCNIC_MAINTENANCE_MODE, &adapter->state); > netdev->netdev_ops = &qlcnic_netdev_failed_ops; > - SET_ETHTOOL_OPS(netdev, &qlcnic_ethtool_failed_ops); > + netdev->ethtool_ops = &qlcnic_ethtool_failed_ops; > ahw->port_type = QLCNIC_XGBE; > > if (qlcnic_83xx_check(adapter)) > diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c > index 0a1d76a..79b86e9 100644 > --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c > +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c > @@ -4770,7 +4770,7 @@ static int qlge_probe(struct pci_dev *pdev, > ndev->irq = pdev->irq; > > ndev->netdev_ops = &qlge_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &qlge_ethtool_ops); > + ndev->ethtool_ops = &qlge_ethtool_ops; > ndev->watchdog_timeo = 10 * HZ; > > err = register_netdev(ndev); > diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c > index aa1c079..be425ad 100644 > --- a/drivers/net/ethernet/realtek/r8169.c > +++ b/drivers/net/ethernet/realtek/r8169.c > @@ -7125,7 +7125,7 @@ rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > for (i = 0; i < ETH_ALEN; i++) > dev->dev_addr[i] = RTL_R8(MAC0 + i); > > - SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops); > + dev->ethtool_ops = &rtl8169_ethtool_ops; > dev->watchdog_timeo = RTL8169_TX_TIMEOUT; > > netif_napi_add(dev, &tp->napi, rtl8169_poll, R8169_NAPI_WEIGHT); > diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c > index 6a9509c..967314c 100644 > --- a/drivers/net/ethernet/renesas/sh_eth.c > +++ b/drivers/net/ethernet/renesas/sh_eth.c > @@ -2843,7 +2843,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev) > ndev->netdev_ops = &sh_eth_netdev_ops_tsu; > else > ndev->netdev_ops = &sh_eth_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &sh_eth_ethtool_ops); > + ndev->ethtool_ops = &sh_eth_ethtool_ops; > ndev->watchdog_timeo = TX_TIMEOUT; > > /* debug message level */ > diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c > index 0415fa5..c0981ae 100644 > --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c > +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c > @@ -520,5 +520,5 @@ static const struct ethtool_ops sxgbe_ethtool_ops = { > > void sxgbe_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &sxgbe_ethtool_ops); > + netdev->ethtool_ops = &sxgbe_ethtool_ops; > } > diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c > index 63d595f..1e27404 100644 > --- a/drivers/net/ethernet/sfc/efx.c > +++ b/drivers/net/ethernet/sfc/efx.c > @@ -2248,7 +2248,7 @@ static int efx_register_netdev(struct efx_nic *efx) > } else { > net_dev->netdev_ops = &efx_farch_netdev_ops; > } > - SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops); > + net_dev->ethtool_ops = &efx_ethtool_ops; > net_dev->gso_max_segs = EFX_TSO_MAX_SEGS; > > rtnl_lock(); > diff --git a/drivers/net/ethernet/sis/sis190.c b/drivers/net/ethernet/sis/sis190.c > index acbbe48..a863399 100644 > --- a/drivers/net/ethernet/sis/sis190.c > +++ b/drivers/net/ethernet/sis/sis190.c > @@ -1877,7 +1877,7 @@ static int sis190_init_one(struct pci_dev *pdev, > > dev->netdev_ops = &sis190_netdev_ops; > > - SET_ETHTOOL_OPS(dev, &sis190_ethtool_ops); > + dev->ethtool_ops = &sis190_ethtool_ops; > dev->watchdog_timeo = SIS190_TX_TIMEOUT; > > spin_lock_init(&tp->lock); > diff --git a/drivers/net/ethernet/smsc/smc91c92_cs.c b/drivers/net/ethernet/smsc/smc91c92_cs.c > index c7a4868..6b33127 100644 > --- a/drivers/net/ethernet/smsc/smc91c92_cs.c > +++ b/drivers/net/ethernet/smsc/smc91c92_cs.c > @@ -318,7 +318,7 @@ static int smc91c92_probe(struct pcmcia_device *link) > > /* The SMC91c92-specific entries in the device structure. */ > dev->netdev_ops = &smc_netdev_ops; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > smc->mii_if.dev = dev; > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > index c5f9cb8..c963394 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > @@ -784,5 +784,5 @@ static const struct ethtool_ops stmmac_ethtool_ops = { > > void stmmac_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &stmmac_ethtool_ops); > + netdev->ethtool_ops = &stmmac_ethtool_ops; > } > diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c > index 2ead877..38da73a 100644 > --- a/drivers/net/ethernet/tehuti/tehuti.c > +++ b/drivers/net/ethernet/tehuti/tehuti.c > @@ -2413,7 +2413,7 @@ static void bdx_set_ethtool_ops(struct net_device *netdev) > .get_ethtool_stats = bdx_get_ethtool_stats, > }; > > - SET_ETHTOOL_OPS(netdev, &bdx_ethtool_ops); > + netdev->ethtool_ops = &bdx_ethtool_ops; > } > > /** > diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c > index 36aa109..6ecab3c 100644 > --- a/drivers/net/ethernet/ti/cpsw.c > +++ b/drivers/net/ethernet/ti/cpsw.c > @@ -1975,7 +1975,7 @@ static int cpsw_probe_dual_emac(struct platform_device *pdev, > ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; > > ndev->netdev_ops = &cpsw_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); > + ndev->ethtool_ops = &cpsw_ethtool_ops; > netif_napi_add(ndev, &priv_sl2->napi, cpsw_poll, CPSW_POLL_WEIGHT); > > /* register the network device */ > @@ -2204,7 +2204,7 @@ static int cpsw_probe(struct platform_device *pdev) > ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; > > ndev->netdev_ops = &cpsw_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); > + ndev->ethtool_ops = &cpsw_ethtool_ops; > netif_napi_add(ndev, &priv->napi, cpsw_poll, CPSW_POLL_WEIGHT); > > /* register the network device */ > diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c > index 8f0e69c..e76eae5 100644 > --- a/drivers/net/ethernet/ti/davinci_emac.c > +++ b/drivers/net/ethernet/ti/davinci_emac.c > @@ -1980,7 +1980,7 @@ static int davinci_emac_probe(struct platform_device *pdev) > } > > ndev->netdev_ops = &emac_netdev_ops; > - SET_ETHTOOL_OPS(ndev, ðtool_ops); > + ndev->ethtool_ops = ðtool_ops; > netif_napi_add(ndev, &priv->napi, emac_poll, EMAC_POLL_WEIGHT); > > /* register the network device */ > diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c > index 31e55fb..2170db5 100644 > --- a/drivers/net/hyperv/netvsc_drv.c > +++ b/drivers/net/hyperv/netvsc_drv.c > @@ -715,7 +715,7 @@ static int netvsc_probe(struct hv_device *dev, > net->features = NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_SG | NETIF_F_RXCSUM | > NETIF_F_IP_CSUM | NETIF_F_TSO; > > - SET_ETHTOOL_OPS(net, ðtool_ops); > + net->ethtool_ops = ðtool_ops; > SET_NETDEV_DEV(net, &dev->device); > > /* Notify the netvsc driver of the new device */ > diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c > index 63aa9d9..27536aa 100644 > --- a/drivers/net/ntb_netdev.c > +++ b/drivers/net/ntb_netdev.c > @@ -348,7 +348,7 @@ static int ntb_netdev_probe(struct pci_dev *pdev) > memcpy(ndev->dev_addr, ndev->perm_addr, ndev->addr_len); > > ndev->netdev_ops = &ntb_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &ntb_ethtool_ops); > + ndev->ethtool_ops = &ntb_ethtool_ops; > > dev->qp = ntb_transport_create_queue(ndev, pdev, &ntb_netdev_handlers); > if (!dev->qp) { > diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c > index a849718..dac7a0d 100644 > --- a/drivers/net/rionet.c > +++ b/drivers/net/rionet.c > @@ -494,7 +494,7 @@ static int rionet_setup_netdev(struct rio_mport *mport, struct net_device *ndev) > ndev->mtu = RIO_MAX_MSG_SIZE - 14; > ndev->features = NETIF_F_LLTX; > SET_NETDEV_DEV(ndev, &mport->dev); > - SET_ETHTOOL_OPS(ndev, &rionet_ethtool_ops); > + ndev->ethtool_ops = &rionet_ethtool_ops; > > spin_lock_init(&rnet->lock); > spin_lock_init(&rnet->tx_lock); > diff --git a/drivers/net/usb/catc.c b/drivers/net/usb/catc.c > index 630caf4..8cfc3bb 100644 > --- a/drivers/net/usb/catc.c > +++ b/drivers/net/usb/catc.c > @@ -793,7 +793,7 @@ static int catc_probe(struct usb_interface *intf, const struct usb_device_id *id > > netdev->netdev_ops = &catc_netdev_ops; > netdev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > > catc->usbdev = usbdev; > catc->netdev = netdev; > diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c > index 660bd5e..a3a0586 100644 > --- a/drivers/net/usb/hso.c > +++ b/drivers/net/usb/hso.c > @@ -2425,7 +2425,7 @@ static void hso_net_init(struct net_device *net) > net->type = ARPHRD_NONE; > net->mtu = DEFAULT_MTU - 14; > net->tx_queue_len = 10; > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > > /* and initialize the semaphore */ > spin_lock_init(&hso_net->net_lock); > diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c > index 421934c..f725707 100644 > --- a/drivers/net/usb/ipheth.c > +++ b/drivers/net/usb/ipheth.c > @@ -524,7 +524,7 @@ static int ipheth_probe(struct usb_interface *intf, > usb_set_intfdata(intf, dev); > > SET_NETDEV_DEV(netdev, &intf->dev); > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > > retval = register_netdev(netdev); > if (retval) { > diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c > index a359d3b..dcb6d33 100644 > --- a/drivers/net/usb/kaweth.c > +++ b/drivers/net/usb/kaweth.c > @@ -1171,7 +1171,7 @@ err_fw: > netdev->netdev_ops = &kaweth_netdev_ops; > netdev->watchdog_timeo = KAWETH_TX_TIMEOUT; > netdev->mtu = le16_to_cpu(kaweth->configuration.segment_size); > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > > /* kaweth is zeroed as part of alloc_netdev */ > INIT_DELAYED_WORK(&kaweth->lowmem_work, kaweth_resubmit_tl); > diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c > index 03e8a15..f840802 100644 > --- a/drivers/net/usb/pegasus.c > +++ b/drivers/net/usb/pegasus.c > @@ -1159,7 +1159,7 @@ static int pegasus_probe(struct usb_interface *intf, > > net->watchdog_timeo = PEGASUS_TX_TIMEOUT; > net->netdev_ops = &pegasus_netdev_ops; > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > pegasus->mii.dev = net; > pegasus->mii.mdio_read = mdio_read; > pegasus->mii.mdio_write = mdio_write; > diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c > index 3fbfb08..9f91c7a 100644 > --- a/drivers/net/usb/r8152.c > +++ b/drivers/net/usb/r8152.c > @@ -3452,7 +3452,7 @@ static int rtl8152_probe(struct usb_interface *intf, > NETIF_F_TSO | NETIF_F_FRAGLIST | > NETIF_F_IPV6_CSUM | NETIF_F_TSO6; > > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > netif_set_gso_max_size(netdev, RTL_LIMITED_TSO_SIZE); > > tp->mii.dev = netdev; > diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c > index da2c458..6e87e57 100644 > --- a/drivers/net/usb/rtl8150.c > +++ b/drivers/net/usb/rtl8150.c > @@ -878,7 +878,7 @@ static int rtl8150_probe(struct usb_interface *intf, > dev->netdev = netdev; > netdev->netdev_ops = &rtl8150_netdev_ops; > netdev->watchdog_timeo = RTL8150_TX_TIMEOUT; > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > dev->intr_interval = 100; /* 100ms */ > > if (!alloc_all_urbs(dev)) { > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 7b68746..3f83359 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1646,7 +1646,7 @@ static int virtnet_probe(struct virtio_device *vdev) > dev->netdev_ops = &virtnet_netdev; > dev->features = NETIF_F_HIGHDMA; > > - SET_ETHTOOL_OPS(dev, &virtnet_ethtool_ops); > + dev->ethtool_ops = &virtnet_ethtool_ops; > SET_NETDEV_DEV(dev, &vdev->dev); > > /* Do we support "hardware" checksums? */ > diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c > index 600ab56..00e1202 100644 > --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c > +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c > @@ -635,5 +635,5 @@ static const struct ethtool_ops vmxnet3_ethtool_ops = { > > void vmxnet3_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &vmxnet3_ethtool_ops); > + netdev->ethtool_ops = &vmxnet3_ethtool_ops; > } > diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c > index 82355d5..457359c 100644 > --- a/drivers/net/vxlan.c > +++ b/drivers/net/vxlan.c > @@ -2706,7 +2706,7 @@ static int vxlan_newlink(struct net *net, struct net_device *dev, > return -EEXIST; > } > > - SET_ETHTOOL_OPS(dev, &vxlan_ethtool_ops); > + dev->ethtool_ops = &vxlan_ethtool_ops; > > /* create an fdb entry for a valid default destination */ > if (!vxlan_addr_any(&vxlan->default_dst.remote_ip)) { > diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c > index 67db34e..52919ad 100644 > --- a/drivers/net/wireless/hostap/hostap_main.c > +++ b/drivers/net/wireless/hostap/hostap_main.c > @@ -882,7 +882,7 @@ void hostap_setup_dev(struct net_device *dev, local_info_t *local, > dev->mtu = local->mtu; > > > - SET_ETHTOOL_OPS(dev, &prism2_ethtool_ops); > + dev->ethtool_ops = &prism2_ethtool_ops; > > } > > diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c > index ef05c5c..a755733 100644 > --- a/drivers/net/xen-netback/interface.c > +++ b/drivers/net/xen-netback/interface.c > @@ -386,7 +386,7 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid, > NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | > NETIF_F_TSO | NETIF_F_TSO6; > dev->features = dev->hw_features | NETIF_F_RXCSUM; > - SET_ETHTOOL_OPS(dev, &xenvif_ethtool_ops); > + dev->ethtool_ops = &xenvif_ethtool_ops; > > dev->tx_queue_len = XENVIF_QUEUE_LENGTH; > > diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c > index 158b5e6..895355d 100644 > --- a/drivers/net/xen-netfront.c > +++ b/drivers/net/xen-netfront.c > @@ -1332,7 +1332,7 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev) > */ > netdev->features |= netdev->hw_features; > > - SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops); > + netdev->ethtool_ops = &xennet_ethtool_ops; > SET_NETDEV_DEV(netdev, &dev->dev); > > netif_set_gso_max_size(netdev, XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER); > diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c > index 8dea3f1..047b4da 100644 > --- a/drivers/s390/net/qeth_l2_main.c > +++ b/drivers/s390/net/qeth_l2_main.c > @@ -964,10 +964,9 @@ static int qeth_l2_setup_netdev(struct qeth_card *card) > card->dev->watchdog_timeo = QETH_TX_TIMEOUT; > card->dev->mtu = card->info.initial_mtu; > card->dev->netdev_ops = &qeth_l2_netdev_ops; > - if (card->info.type != QETH_CARD_TYPE_OSN) > - SET_ETHTOOL_OPS(card->dev, &qeth_l2_ethtool_ops); > - else > - SET_ETHTOOL_OPS(card->dev, &qeth_l2_osn_ops); > + card->dev->ethtool_ops > + (card->info.type != QETH_CARD_TYPE_OSN) ? > + &qeth_l2_ethtool_ops : &qeth_l2_osn_ops; > card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; > card->info.broadcast_capable = 1; > qeth_l2_request_initial_mac(card); > diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c > index 3524d34..0a59d24 100644 > --- a/drivers/s390/net/qeth_l3_main.c > +++ b/drivers/s390/net/qeth_l3_main.c > @@ -3298,7 +3298,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card) > card->dev->ml_priv = card; > card->dev->watchdog_timeo = QETH_TX_TIMEOUT; > card->dev->mtu = card->info.initial_mtu; > - SET_ETHTOOL_OPS(card->dev, &qeth_l3_ethtool_ops); > + card->dev->ethtool_ops = &qeth_l3_ethtool_ops; > card->dev->features |= NETIF_F_HW_VLAN_CTAG_TX | > NETIF_F_HW_VLAN_CTAG_RX | > NETIF_F_HW_VLAN_CTAG_FILTER; > diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c > index d329cf3..15e0f4d 100644 > --- a/drivers/staging/et131x/et131x.c > +++ b/drivers/staging/et131x/et131x.c > @@ -4604,7 +4604,7 @@ static int et131x_pci_setup(struct pci_dev *pdev, > netdev->netdev_ops = &et131x_netdev_ops; > > SET_NETDEV_DEV(netdev, &pdev->dev); > - SET_ETHTOOL_OPS(netdev, &et131x_ethtool_ops); > + netdev->ethtool_ops = &et131x_ethtool_ops; > > adapter = et131x_adapter_init(netdev, pdev); > > diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c > index d6421b9..a6158be 100644 > --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c > +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c > @@ -2249,7 +2249,7 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link, > > ft1000InitProc(dev); > ft1000_card_present = 1; > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > printk(KERN_INFO "ft1000: %s: addr 0x%04lx irq %d, MAC addr %pM\n", > dev->name, dev->base_addr, dev->irq, dev->dev_addr); > return dev; > diff --git a/drivers/staging/netlogic/xlr_net.c b/drivers/staging/netlogic/xlr_net.c > index c83e337..9d95761 100644 > --- a/drivers/staging/netlogic/xlr_net.c > +++ b/drivers/staging/netlogic/xlr_net.c > @@ -1066,7 +1066,7 @@ static int xlr_net_probe(struct platform_device *pdev) > xlr_set_rx_mode(ndev); > > priv->num_rx_desc += MAX_NUM_DESC_SPILL; > - SET_ETHTOOL_OPS(ndev, &xlr_ethtool_ops); > + ndev->ethtool_ops = &xlr_ethtool_ops; > SET_NETDEV_DEV(ndev, &pdev->dev); > > /* Common registers, do one time initialization */ > diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c > index ff7214a..da9dd6b 100644 > --- a/drivers/staging/octeon/ethernet.c > +++ b/drivers/staging/octeon/ethernet.c > @@ -469,7 +469,7 @@ int cvm_oct_common_init(struct net_device *dev) > > /* We do our own locking, Linux doesn't need to */ > dev->features |= NETIF_F_LLTX; > - SET_ETHTOOL_OPS(dev, &cvm_oct_ethtool_ops); > + dev->ethtool_ops = &cvm_oct_ethtool_ops; > > cvm_oct_phy_setup_device(dev); > cvm_oct_set_mac_filter(dev); > diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c > index b7d4f82..ce8e281 100644 > --- a/drivers/usb/gadget/u_ether.c > +++ b/drivers/usb/gadget/u_ether.c > @@ -793,7 +793,7 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g, > > net->netdev_ops = ð_netdev_ops; > > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > > dev->gadget = g; > SET_NETDEV_DEV(net, &g->dev); > @@ -850,7 +850,7 @@ struct net_device *gether_setup_name_default(const char *netname) > > net->netdev_ops = ð_netdev_ops; > > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > SET_NETDEV_DEVTYPE(net, &gadget_type); > > return net; > diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > index 7ed3a3a..06071f7 100644 > --- a/include/linux/netdevice.h > +++ b/include/linux/netdevice.h > @@ -56,9 +56,6 @@ struct device; > struct phy_device; > /* 802.11 specific */ > struct wireless_dev; > - /* source back-compat hooks */ > -#define SET_ETHTOOL_OPS(netdev,ops) \ > - ( (netdev)->ethtool_ops = (ops) ) > > void netdev_set_default_ethtool_ops(struct net_device *dev, > const struct ethtool_ops *ops); > diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c > index 744a59b..e7ee65d 100644 > --- a/net/batman-adv/soft-interface.c > +++ b/net/batman-adv/soft-interface.c > @@ -884,7 +884,7 @@ static void batadv_softif_init_early(struct net_device *dev) > /* generate random address */ > eth_hw_addr_random(dev); > > - SET_ETHTOOL_OPS(dev, &batadv_ethtool_ops); > + dev->ethtool_ops = &batadv_ethtool_ops; > > memset(priv, 0, sizeof(*priv)); > } > diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c > index 3e2da2c..9212015 100644 > --- a/net/bridge/br_device.c > +++ b/net/bridge/br_device.c > @@ -348,7 +348,7 @@ void br_dev_setup(struct net_device *dev) > > dev->netdev_ops = &br_netdev_ops; > dev->destructor = br_dev_free; > - SET_ETHTOOL_OPS(dev, &br_ethtool_ops); > + dev->ethtool_ops = &br_ethtool_ops; > SET_NETDEV_DEVTYPE(dev, &br_type); > dev->tx_queue_len = 0; > dev->priv_flags = IFF_EBRIDGE; > diff --git a/net/dsa/slave.c b/net/dsa/slave.c > index 02c0e17..64c5af0 100644 > --- a/net/dsa/slave.c > +++ b/net/dsa/slave.c > @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, > return slave_dev; > > slave_dev->features = master->vlan_features; > - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); > + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; > eth_hw_addr_inherit(slave_dev, master); > slave_dev->tx_queue_len = 0; > > diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c > index 729c687..789af92 100644 > --- a/net/openvswitch/vport-internal_dev.c > +++ b/net/openvswitch/vport-internal_dev.c > @@ -130,7 +130,7 @@ static void do_setup(struct net_device *netdev) > netdev->priv_flags &= ~IFF_TX_SKB_SHARING; > netdev->priv_flags |= IFF_LIVE_ADDR_CHANGE; > netdev->destructor = internal_dev_destructor; > - SET_ETHTOOL_OPS(netdev, &internal_dev_ethtool_ops); > + netdev->ethtool_ops = &internal_dev_ethtool_ops; > netdev->tx_queue_len = 0; > > netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST | >-- Peter
I think that it may be appropriate to submit this patch for linux-next instead of 3.15-rc4... On Thu, May 8, 2014 at 1:53 PM, Wilfried Klaebe <w-lkml at lebenslange-mailadresse.de> wrote:> Dave Miller mentioned he'd like to see SET_ETHTOOL_OPS gone. > This does that. > > Compile tested only, but I'd seriously wonder if this broke anything. > > Suggested-by: Dave Miller <davem at davemloft.net> > Signed-off-by: Wilfried Klaebe <w-lkml at lebenslange-mailadresse.de> > > --- > > Applies against v3.15-rc4. > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c > index c4b3940..078cadd 100644 > --- a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c > +++ b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c > @@ -105,5 +105,5 @@ static const struct ethtool_ops ipoib_ethtool_ops = { > > void ipoib_set_ethtool_ops(struct net_device *dev) > { > - SET_ETHTOOL_OPS(dev, &ipoib_ethtool_ops); > + dev->ethtool_ops = &ipoib_ethtool_ops; > } > diff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c > index 35df0b9..a968654 100644 > --- a/drivers/net/ethernet/3com/3c509.c > +++ b/drivers/net/ethernet/3com/3c509.c > @@ -534,7 +534,7 @@ static int el3_common_init(struct net_device *dev) > /* The EL3-specific entries in the device structure. */ > dev->netdev_ops = &netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > > err = register_netdev(dev); > if (err) { > diff --git a/drivers/net/ethernet/3com/3c589_cs.c b/drivers/net/ethernet/3com/3c589_cs.c > index 063557e..f18647c 100644 > --- a/drivers/net/ethernet/3com/3c589_cs.c > +++ b/drivers/net/ethernet/3com/3c589_cs.c > @@ -218,7 +218,7 @@ static int tc589_probe(struct pcmcia_device *link) > dev->netdev_ops = &el3_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > > return tc589_config(link); > } > diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c > index 465cc71..e13b046 100644 > --- a/drivers/net/ethernet/3com/typhoon.c > +++ b/drivers/net/ethernet/3com/typhoon.c > @@ -2435,7 +2435,7 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > netif_napi_add(dev, &tp->napi, typhoon_poll, 16); > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, &typhoon_ethtool_ops); > + dev->ethtool_ops = &typhoon_ethtool_ops; > > /* We can handle scatter gather, up to 16 entries, and > * we can do IP checksumming (only version 4, doh...) > diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c > index 171d73c..40dbbf7 100644 > --- a/drivers/net/ethernet/adaptec/starfire.c > +++ b/drivers/net/ethernet/adaptec/starfire.c > @@ -784,7 +784,7 @@ static int starfire_init_one(struct pci_dev *pdev, > > dev->netdev_ops = &netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > > netif_napi_add(dev, &np->napi, netdev_poll, max_interrupt_work); > > diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c > index 1517e9df..9a6991b 100644 > --- a/drivers/net/ethernet/alteon/acenic.c > +++ b/drivers/net/ethernet/alteon/acenic.c > @@ -476,7 +476,7 @@ static int acenic_probe_one(struct pci_dev *pdev, > dev->watchdog_timeo = 5*HZ; > > dev->netdev_ops = &ace_netdev_ops; > - SET_ETHTOOL_OPS(dev, &ace_ethtool_ops); > + dev->ethtool_ops = &ace_ethtool_ops; > > /* we only display this string ONCE */ > if (!boards_found) > diff --git a/drivers/net/ethernet/altera/altera_tse_ethtool.c b/drivers/net/ethernet/altera/altera_tse_ethtool.c > index 319ca74..8ac4bd2 100644 > --- a/drivers/net/ethernet/altera/altera_tse_ethtool.c > +++ b/drivers/net/ethernet/altera/altera_tse_ethtool.c > @@ -231,5 +231,5 @@ static const struct ethtool_ops tse_ethtool_ops = { > > void altera_tse_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &tse_ethtool_ops); > + netdev->ethtool_ops = &tse_ethtool_ops; > } > diff --git a/drivers/net/ethernet/amd/amd8111e.c b/drivers/net/ethernet/amd/amd8111e.c > index 26efaaa..068dc7c 100644 > --- a/drivers/net/ethernet/amd/amd8111e.c > +++ b/drivers/net/ethernet/amd/amd8111e.c > @@ -1900,7 +1900,7 @@ static int amd8111e_probe_one(struct pci_dev *pdev, > > /* Initialize driver entry points */ > dev->netdev_ops = &amd8111e_netdev_ops; > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > dev->irq =pdev->irq; > dev->watchdog_timeo = AMD8111E_TX_TIMEOUT; > netif_napi_add(dev, &lp->napi, amd8111e_rx_poll, 32); > diff --git a/drivers/net/ethernet/amd/au1000_eth.c b/drivers/net/ethernet/amd/au1000_eth.c > index a2bd91e..a78e4c1 100644 > --- a/drivers/net/ethernet/amd/au1000_eth.c > +++ b/drivers/net/ethernet/amd/au1000_eth.c > @@ -1229,7 +1229,7 @@ static int au1000_probe(struct platform_device *pdev) > dev->base_addr = base->start; > dev->irq = irq; > dev->netdev_ops = &au1000_netdev_ops; > - SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops); > + dev->ethtool_ops = &au1000_ethtool_ops; > dev->watchdog_timeo = ETH_TX_TIMEOUT; > > /* > diff --git a/drivers/net/ethernet/amd/nmclan_cs.c b/drivers/net/ethernet/amd/nmclan_cs.c > index 08569fe..abf3b15 100644 > --- a/drivers/net/ethernet/amd/nmclan_cs.c > +++ b/drivers/net/ethernet/amd/nmclan_cs.c > @@ -457,7 +457,7 @@ static int nmclan_probe(struct pcmcia_device *link) > lp->tx_free_frames=AM2150_MAX_TX_FRAMES; > > dev->netdev_ops = &mace_netdev_ops; > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > return nmclan_config(link); > diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c > index 17bb9ce..49faa97 100644 > --- a/drivers/net/ethernet/atheros/alx/main.c > +++ b/drivers/net/ethernet/atheros/alx/main.c > @@ -1302,7 +1302,7 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > } > > netdev->netdev_ops = &alx_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &alx_ethtool_ops); > + netdev->ethtool_ops = &alx_ethtool_ops; > netdev->irq = pdev->irq; > netdev->watchdog_timeo = ALX_WATCHDOG_TIME; > > diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c > index 859ea84..ecacaae 100644 > --- a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c > +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c > @@ -305,5 +305,5 @@ static const struct ethtool_ops atl1c_ethtool_ops = { > > void atl1c_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &atl1c_ethtool_ops); > + netdev->ethtool_ops = &atl1c_ethtool_ops; > } > diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c > index 82b2386..206e9b7 100644 > --- a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c > +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c > @@ -388,5 +388,5 @@ static const struct ethtool_ops atl1e_ethtool_ops = { > > void atl1e_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &atl1e_ethtool_ops); > + netdev->ethtool_ops = &atl1e_ethtool_ops; > } > diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c > index 78befb5..2587fed 100644 > --- a/drivers/net/ethernet/atheros/atlx/atl2.c > +++ b/drivers/net/ethernet/atheros/atlx/atl2.c > @@ -1396,7 +1396,7 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > atl2_setup_pcicmd(pdev); > > netdev->netdev_ops = &atl2_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &atl2_ethtool_ops); > + netdev->ethtool_ops = &atl2_ethtool_ops; > netdev->watchdog_timeo = 5 * HZ; > strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); > > diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c > index 05ba625..ca5a20a 100644 > --- a/drivers/net/ethernet/broadcom/b44.c > +++ b/drivers/net/ethernet/broadcom/b44.c > @@ -2380,7 +2380,7 @@ static int b44_init_one(struct ssb_device *sdev, > netif_napi_add(dev, &bp->napi, b44_poll, 64); > dev->watchdog_timeo = B44_TX_TIMEOUT; > dev->irq = sdev->irq; > - SET_ETHTOOL_OPS(dev, &b44_ethtool_ops); > + dev->ethtool_ops = &b44_ethtool_ops; > > err = ssb_bus_powerup(sdev->bus, 0); > if (err) { > diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c > index a7d11f5..1e7bba9c 100644 > --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c > +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c > @@ -1898,7 +1898,7 @@ static int bcm_enet_probe(struct platform_device *pdev) > dev->netdev_ops = &bcm_enet_ops; > netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16); > > - SET_ETHTOOL_OPS(dev, &bcm_enet_ethtool_ops); > + dev->ethtool_ops = &bcm_enet_ethtool_ops; > SET_NETDEV_DEV(dev, &pdev->dev); > > ret = register_netdev(dev); > @@ -2784,7 +2784,7 @@ static int bcm_enetsw_probe(struct platform_device *pdev) > /* register netdevice */ > dev->netdev_ops = &bcm_enetsw_ops; > netif_napi_add(dev, &priv->napi, bcm_enet_poll, 16); > - SET_ETHTOOL_OPS(dev, &bcm_enetsw_ethtool_ops); > + dev->ethtool_ops = &bcm_enetsw_ethtool_ops; > SET_NETDEV_DEV(dev, &pdev->dev); > > spin_lock_init(&priv->enetsw_mdio_lock); > diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c > index 0297a79..05c6af6 100644 > --- a/drivers/net/ethernet/broadcom/bgmac.c > +++ b/drivers/net/ethernet/broadcom/bgmac.c > @@ -1436,7 +1436,7 @@ static int bgmac_probe(struct bcma_device *core) > return -ENOMEM; > net_dev->netdev_ops = &bgmac_netdev_ops; > net_dev->irq = core->irq; > - SET_ETHTOOL_OPS(net_dev, &bgmac_ethtool_ops); > + net_dev->ethtool_ops = &bgmac_ethtool_ops; > bgmac = netdev_priv(net_dev); > bgmac->net_dev = net_dev; > bgmac->core = core; > diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c > index b6de05e..0322409 100644 > --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c > +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c > @@ -3506,8 +3506,6 @@ static const struct ethtool_ops bnx2x_vf_ethtool_ops = { > > void bnx2x_set_ethtool_ops(struct bnx2x *bp, struct net_device *netdev) > { > - if (IS_PF(bp)) > - SET_ETHTOOL_OPS(netdev, &bnx2x_ethtool_ops); > - else /* vf */ > - SET_ETHTOOL_OPS(netdev, &bnx2x_vf_ethtool_ops); > + netdev->ethtool_ops = (IS_PF(bp)) ? > + &bnx2x_ethtool_ops : &bnx2x_vf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c > index 0966bd0..5ba1cfb 100644 > --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c > +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c > @@ -2481,7 +2481,7 @@ static int bcmgenet_probe(struct platform_device *pdev) > dev_set_drvdata(&pdev->dev, dev); > ether_addr_copy(dev->dev_addr, macaddr); > dev->watchdog_timeo = 2 * HZ; > - SET_ETHTOOL_OPS(dev, &bcmgenet_ethtool_ops); > + dev->ethtool_ops = &bcmgenet_ethtool_ops; > dev->netdev_ops = &bcmgenet_netdev_ops; > netif_napi_add(dev, &priv->napi, bcmgenet_poll, 64); > > diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c > index f9e1508..adca62b 100644 > --- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c > +++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c > @@ -1137,5 +1137,5 @@ static const struct ethtool_ops bnad_ethtool_ops = { > void > bnad_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &bnad_ethtool_ops); > + netdev->ethtool_ops = &bnad_ethtool_ops; > } > diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c > index 521dfea..25d6b2a 100644 > --- a/drivers/net/ethernet/calxeda/xgmac.c > +++ b/drivers/net/ethernet/calxeda/xgmac.c > @@ -1737,7 +1737,7 @@ static int xgmac_probe(struct platform_device *pdev) > platform_set_drvdata(pdev, ndev); > ether_setup(ndev); > ndev->netdev_ops = &xgmac_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &xgmac_ethtool_ops); > + ndev->ethtool_ops = &xgmac_ethtool_ops; > spin_lock_init(&priv->stats_lock); > INIT_WORK(&priv->tx_timeout_work, xgmac_tx_timeout_work); > > diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c > index 0fe7ff7..c1b2c1d 100644 > --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c > +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c > @@ -1100,7 +1100,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > > netif_napi_add(netdev, &adapter->napi, t1_poll, 64); > > - SET_ETHTOOL_OPS(netdev, &t1_ethtool_ops); > + netdev->ethtool_ops = &t1_ethtool_ops; > } > > if (t1_init_sw_modules(adapter, bi) < 0) { > diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c > index 07bbb71..3ed5079 100644 > --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c > @@ -3291,7 +3291,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > netdev->features |= NETIF_F_HIGHDMA; > > netdev->netdev_ops = &cxgb_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); > + netdev->ethtool_ops = &cxgb_ethtool_ops; > } > > pci_set_drvdata(pdev, adapter); > diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > index 6fe5891..7c61f89 100644 > --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > @@ -6074,7 +6074,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > netdev->priv_flags |= IFF_UNICAST_FLT; > > netdev->netdev_ops = &cxgb4_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); > + netdev->ethtool_ops = &cxgb_ethtool_ops; > } > > pci_set_drvdata(pdev, adapter); > diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c > index 5285928..ff1cdd1 100644 > --- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c > @@ -2664,7 +2664,7 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev, > netdev->priv_flags |= IFF_UNICAST_FLT; > > netdev->netdev_ops = &cxgb4vf_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &cxgb4vf_ethtool_ops); > + netdev->ethtool_ops = &cxgb4vf_ethtool_ops; > > /* > * Initialize the hardware/software state for the port. > diff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c b/drivers/net/ethernet/cisco/enic/enic_ethtool.c > index 47e3562..58a8c67 100644 > --- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c > +++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c > @@ -253,5 +253,5 @@ static const struct ethtool_ops enic_ethtool_ops = { > > void enic_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &enic_ethtool_ops); > + netdev->ethtool_ops = &enic_ethtool_ops; > } > diff --git a/drivers/net/ethernet/dec/tulip/tulip_core.c b/drivers/net/ethernet/dec/tulip/tulip_core.c > index 1642de7..8616608 100644 > --- a/drivers/net/ethernet/dec/tulip/tulip_core.c > +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c > @@ -1703,7 +1703,7 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > #ifdef CONFIG_TULIP_NAPI > netif_napi_add(dev, &tp->napi, tulip_poll, 16); > #endif > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > > if (register_netdev(dev)) > goto err_out_free_ring; > diff --git a/drivers/net/ethernet/dlink/dl2k.c b/drivers/net/ethernet/dlink/dl2k.c > index 4fb756d..2324f2d 100644 > --- a/drivers/net/ethernet/dlink/dl2k.c > +++ b/drivers/net/ethernet/dlink/dl2k.c > @@ -227,7 +227,7 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent) > } > dev->netdev_ops = &netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > #if 0 > dev->features = NETIF_F_IP_CSUM; > #endif > diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c > index d9e5ca0..433c1e1 100644 > --- a/drivers/net/ethernet/dlink/sundance.c > +++ b/drivers/net/ethernet/dlink/sundance.c > @@ -577,7 +577,7 @@ static int sundance_probe1(struct pci_dev *pdev, > > /* The chip-specific entries in the device structure. */ > dev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > pci_set_drvdata(pdev, dev); > diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c > index a186454..9a9e7c7 100644 > --- a/drivers/net/ethernet/emulex/benet/be_main.c > +++ b/drivers/net/ethernet/emulex/benet/be_main.c > @@ -4301,7 +4301,7 @@ static void be_netdev_init(struct net_device *netdev) > > netdev->netdev_ops = &be_netdev_ops; > > - SET_ETHTOOL_OPS(netdev, &be_ethtool_ops); > + netdev->ethtool_ops = &be_ethtool_ops; > } > > static void be_unmap_pci_bars(struct be_adapter *adapter) > diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c > index 68069ea..c77fa4a 100644 > --- a/drivers/net/ethernet/faraday/ftgmac100.c > +++ b/drivers/net/ethernet/faraday/ftgmac100.c > @@ -1210,7 +1210,7 @@ static int ftgmac100_probe(struct platform_device *pdev) > > SET_NETDEV_DEV(netdev, &pdev->dev); > > - SET_ETHTOOL_OPS(netdev, &ftgmac100_ethtool_ops); > + netdev->ethtool_ops = &ftgmac100_ethtool_ops; > netdev->netdev_ops = &ftgmac100_netdev_ops; > netdev->features = NETIF_F_IP_CSUM | NETIF_F_GRO; > > diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c > index 8be5b40..4ff1adc 100644 > --- a/drivers/net/ethernet/faraday/ftmac100.c > +++ b/drivers/net/ethernet/faraday/ftmac100.c > @@ -1085,7 +1085,7 @@ static int ftmac100_probe(struct platform_device *pdev) > } > > SET_NETDEV_DEV(netdev, &pdev->dev); > - SET_ETHTOOL_OPS(netdev, &ftmac100_ethtool_ops); > + netdev->ethtool_ops = &ftmac100_ethtool_ops; > netdev->netdev_ops = &ftmac100_netdev_ops; > > platform_set_drvdata(pdev, netdev); > diff --git a/drivers/net/ethernet/freescale/ucc_geth_ethtool.c b/drivers/net/ethernet/freescale/ucc_geth_ethtool.c > index 413329e..cc83350 100644 > --- a/drivers/net/ethernet/freescale/ucc_geth_ethtool.c > +++ b/drivers/net/ethernet/freescale/ucc_geth_ethtool.c > @@ -417,5 +417,5 @@ static const struct ethtool_ops uec_ethtool_ops = { > > void uec_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &uec_ethtool_ops); > + netdev->ethtool_ops = &uec_ethtool_ops; > } > diff --git a/drivers/net/ethernet/fujitsu/fmvj18x_cs.c b/drivers/net/ethernet/fujitsu/fmvj18x_cs.c > index 7becab1..cfe7a74 100644 > --- a/drivers/net/ethernet/fujitsu/fmvj18x_cs.c > +++ b/drivers/net/ethernet/fujitsu/fmvj18x_cs.c > @@ -256,7 +256,7 @@ static int fmvj18x_probe(struct pcmcia_device *link) > dev->netdev_ops = &fjn_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > > return fmvj18x_config(link); > } /* fmvj18x_attach */ > diff --git a/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c b/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c > index 95837b9..6055e3e 100644 > --- a/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c > +++ b/drivers/net/ethernet/ibm/ehea/ehea_ethtool.c > @@ -278,5 +278,5 @@ static const struct ethtool_ops ehea_ethtool_ops = { > > void ehea_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ehea_ethtool_ops); > + netdev->ethtool_ops = &ehea_ethtool_ops; > } > diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c > index ae342fd..87bd953 100644 > --- a/drivers/net/ethernet/ibm/emac/core.c > +++ b/drivers/net/ethernet/ibm/emac/core.c > @@ -2879,7 +2879,7 @@ static int emac_probe(struct platform_device *ofdev) > dev->commac.ops = &emac_commac_sg_ops; > } else > ndev->netdev_ops = &emac_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &emac_ethtool_ops); > + ndev->ethtool_ops = &emac_ethtool_ops; > > netif_carrier_off(ndev); > > diff --git a/drivers/net/ethernet/icplus/ipg.c b/drivers/net/ethernet/icplus/ipg.c > index 25045ae..5727779 100644 > --- a/drivers/net/ethernet/icplus/ipg.c > +++ b/drivers/net/ethernet/icplus/ipg.c > @@ -2245,7 +2245,7 @@ static int ipg_probe(struct pci_dev *pdev, const struct pci_device_id *id) > */ > dev->netdev_ops = &ipg_netdev_ops; > SET_NETDEV_DEV(dev, &pdev->dev); > - SET_ETHTOOL_OPS(dev, &ipg_ethtool_ops); > + dev->ethtool_ops = &ipg_ethtool_ops; > > rc = pci_request_regions(pdev, DRV_NAME); > if (rc) > diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c > index b56461c..9d979d7 100644 > --- a/drivers/net/ethernet/intel/e100.c > +++ b/drivers/net/ethernet/intel/e100.c > @@ -2854,7 +2854,7 @@ static int e100_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > netdev->hw_features |= NETIF_F_RXALL; > > netdev->netdev_ops = &e100_netdev_ops; > - SET_ETHTOOL_OPS(netdev, &e100_ethtool_ops); > + netdev->ethtool_ops = &e100_ethtool_ops; > netdev->watchdog_timeo = E100_WATCHDOG_PERIOD; > strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); > > diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c > index 73a8aee..341889a 100644 > --- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c > +++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c > @@ -1905,5 +1905,5 @@ static const struct ethtool_ops e1000_ethtool_ops = { > > void e1000_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops); > + netdev->ethtool_ops = &e1000_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c > index cad250b..d9f8a2d 100644 > --- a/drivers/net/ethernet/intel/e1000e/ethtool.c > +++ b/drivers/net/ethernet/intel/e1000e/ethtool.c > @@ -2315,5 +2315,5 @@ static const struct ethtool_ops e1000_ethtool_ops = { > > void e1000e_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops); > + netdev->ethtool_ops = &e1000_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > index 03d99cb..7673f86 100644 > --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c > @@ -1692,5 +1692,5 @@ static const struct ethtool_ops i40e_ethtool_ops = { > > void i40e_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &i40e_ethtool_ops); > + netdev->ethtool_ops = &i40e_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c > index 8b0db1c..4defd51 100644 > --- a/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c > @@ -389,5 +389,5 @@ static struct ethtool_ops i40evf_ethtool_ops = { > **/ > void i40evf_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &i40evf_ethtool_ops); > + netdev->ethtool_ops = &i40evf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c > index e5570ac..30b76e1 100644 > --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c > +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c > @@ -3029,5 +3029,5 @@ static const struct ethtool_ops igb_ethtool_ops = { > > void igb_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &igb_ethtool_ops); > + netdev->ethtool_ops = &igb_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/igbvf/ethtool.c b/drivers/net/ethernet/intel/igbvf/ethtool.c > index 90eef07..f58170b 100644 > --- a/drivers/net/ethernet/intel/igbvf/ethtool.c > +++ b/drivers/net/ethernet/intel/igbvf/ethtool.c > @@ -476,5 +476,5 @@ static const struct ethtool_ops igbvf_ethtool_ops = { > > void igbvf_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &igbvf_ethtool_ops); > + netdev->ethtool_ops = &igbvf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c > index dbb7dd2..1da2d98 100644 > --- a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c > +++ b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c > @@ -656,5 +656,5 @@ static const struct ethtool_ops ixgb_ethtool_ops = { > > void ixgb_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ixgb_ethtool_ops); > + netdev->ethtool_ops = &ixgb_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c > index 6c55c14..31d7268 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c > @@ -3099,5 +3099,5 @@ static const struct ethtool_ops ixgbe_ethtool_ops = { > > void ixgbe_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ixgbe_ethtool_ops); > + netdev->ethtool_ops = &ixgbe_ethtool_ops; > } > diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c > index 1baecb6..a757f07 100644 > --- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c > +++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c > @@ -813,5 +813,5 @@ static const struct ethtool_ops ixgbevf_ethtool_ops = { > > void ixgbevf_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &ixgbevf_ethtool_ops); > + netdev->ethtool_ops = &ixgbevf_ethtool_ops; > } > diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c > index b7b8d74..df1d1b9 100644 > --- a/drivers/net/ethernet/marvell/mv643xx_eth.c > +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c > @@ -2889,7 +2889,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev) > if (err) > goto out; > > - SET_ETHTOOL_OPS(dev, &mv643xx_eth_ethtool_ops); > + dev->ethtool_ops = &mv643xx_eth_ethtool_ops; > > init_pscr(mp, pd->speed, pd->duplex); > > diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c > index 14786c8..72bc47f 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -2813,7 +2813,7 @@ static int mvneta_probe(struct platform_device *pdev) > dev->watchdog_timeo = 5 * HZ; > dev->netdev_ops = &mvneta_netdev_ops; > > - SET_ETHTOOL_OPS(dev, &mvneta_eth_tool_ops); > + dev->ethtool_ops = &mvneta_eth_tool_ops; > > pp = netdev_priv(dev); > > diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c > index b358c2f..8f5aa7c 100644 > --- a/drivers/net/ethernet/marvell/pxa168_eth.c > +++ b/drivers/net/ethernet/marvell/pxa168_eth.c > @@ -1488,7 +1488,7 @@ static int pxa168_eth_probe(struct platform_device *pdev) > dev->netdev_ops = &pxa168_eth_netdev_ops; > dev->watchdog_timeo = 2 * HZ; > dev->base_addr = 0; > - SET_ETHTOOL_OPS(dev, &pxa168_ethtool_ops); > + dev->ethtool_ops = &pxa168_ethtool_ops; > > INIT_WORK(&pep->tx_timeout_task, pxa168_eth_tx_timeout_task); > > diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c > index b811064..6969338 100644 > --- a/drivers/net/ethernet/marvell/sky2.c > +++ b/drivers/net/ethernet/marvell/sky2.c > @@ -4760,7 +4760,7 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port, > > SET_NETDEV_DEV(dev, &hw->pdev->dev); > dev->irq = hw->pdev->irq; > - SET_ETHTOOL_OPS(dev, &sky2_ethtool_ops); > + dev->ethtool_ops = &sky2_ethtool_ops; > dev->watchdog_timeo = TX_WATCHDOG; > dev->netdev_ops = &sky2_netdev_ops[port]; > > diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > index 7e4b172..36af5e7 100644 > --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > @@ -2539,7 +2539,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, > netif_set_real_num_tx_queues(dev, priv->tx_ring_num); > netif_set_real_num_rx_queues(dev, priv->rx_ring_num); > > - SET_ETHTOOL_OPS(dev, &mlx4_en_ethtool_ops); > + dev->ethtool_ops = &mlx4_en_ethtool_ops; > > /* > * Set driver features > diff --git a/drivers/net/ethernet/micrel/ks8695net.c b/drivers/net/ethernet/micrel/ks8695net.c > index 16435b3..6c7c78ba 100644 > --- a/drivers/net/ethernet/micrel/ks8695net.c > +++ b/drivers/net/ethernet/micrel/ks8695net.c > @@ -1504,15 +1504,15 @@ ks8695_probe(struct platform_device *pdev) > if (ksp->phyiface_regs && ksp->link_irq == -1) { > ks8695_init_switch(ksp); > ksp->dtype = KS8695_DTYPE_LAN; > - SET_ETHTOOL_OPS(ndev, &ks8695_ethtool_ops); > + ndev->ethtool_ops = &ks8695_ethtool_ops; > } else if (ksp->phyiface_regs && ksp->link_irq != -1) { > ks8695_init_wan_phy(ksp); > ksp->dtype = KS8695_DTYPE_WAN; > - SET_ETHTOOL_OPS(ndev, &ks8695_wan_ethtool_ops); > + ndev->ethtool_ops = &ks8695_wan_ethtool_ops; > } else { > /* No initialisation since HPNA does not have a PHY */ > ksp->dtype = KS8695_DTYPE_HPNA; > - SET_ETHTOOL_OPS(ndev, &ks8695_ethtool_ops); > + ndev->ethtool_ops = &ks8695_ethtool_ops; > } > > /* And bring up the net_device with the net core */ > diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c > index e0c92e0..13767eb 100644 > --- a/drivers/net/ethernet/micrel/ks8851.c > +++ b/drivers/net/ethernet/micrel/ks8851.c > @@ -1471,7 +1471,7 @@ static int ks8851_probe(struct spi_device *spi) > > skb_queue_head_init(&ks->txq); > > - SET_ETHTOOL_OPS(ndev, &ks8851_ethtool_ops); > + ndev->ethtool_ops = &ks8851_ethtool_ops; > SET_NETDEV_DEV(ndev, &spi->dev); > > spi_set_drvdata(spi, ks); > diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c > index 14ac0e2..4b9592c1 100644 > --- a/drivers/net/ethernet/micrel/ksz884x.c > +++ b/drivers/net/ethernet/micrel/ksz884x.c > @@ -7106,7 +7106,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id) > } > > dev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > if (register_netdev(dev)) > goto pcidev_init_reg_err; > port_set_power_saving(port, true); > diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c > index c7b40aa..b1b5f66 100644 > --- a/drivers/net/ethernet/microchip/enc28j60.c > +++ b/drivers/net/ethernet/microchip/enc28j60.c > @@ -1593,7 +1593,7 @@ static int enc28j60_probe(struct spi_device *spi) > dev->irq = spi->irq; > dev->netdev_ops = &enc28j60_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); > + dev->ethtool_ops = &enc28j60_ethtool_ops; > > enc28j60_lowpower(priv, true); > > diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c > index 130f6b2..f3d5d79 100644 > --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c > +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c > @@ -4112,7 +4112,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > setup_timer(&mgp->watchdog_timer, myri10ge_watchdog_timer, > (unsigned long)mgp); > > - SET_ETHTOOL_OPS(netdev, &myri10ge_ethtool_ops); > + netdev->ethtool_ops = &myri10ge_ethtool_ops; > INIT_WORK(&mgp->watchdog_work, myri10ge_watchdog); > status = register_netdev(netdev); > if (status != 0) { > diff --git a/drivers/net/ethernet/natsemi/natsemi.c b/drivers/net/ethernet/natsemi/natsemi.c > index 64ec2a4..291fba8 100644 > --- a/drivers/net/ethernet/natsemi/natsemi.c > +++ b/drivers/net/ethernet/natsemi/natsemi.c > @@ -927,7 +927,7 @@ static int natsemi_probe1(struct pci_dev *pdev, const struct pci_device_id *ent) > dev->netdev_ops = &natsemi_netdev_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > > if (mtu) > dev->mtu = mtu; > diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c > index dbccf1d..19bb824 100644 > --- a/drivers/net/ethernet/natsemi/ns83820.c > +++ b/drivers/net/ethernet/natsemi/ns83820.c > @@ -2030,7 +2030,7 @@ static int ns83820_init_one(struct pci_dev *pci_dev, > pci_dev->subsystem_vendor, pci_dev->subsystem_device); > > ndev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(ndev, &ops); > + ndev->ethtool_ops = &ops; > ndev->watchdog_timeo = 5 * HZ; > pci_set_drvdata(pci_dev, ndev); > > diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c > index a2844ff..190538d 100644 > --- a/drivers/net/ethernet/neterion/s2io.c > +++ b/drivers/net/ethernet/neterion/s2io.c > @@ -7919,7 +7919,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) > > /* Driver entry points */ > dev->netdev_ops = &s2io_netdev_ops; > - SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); > + dev->ethtool_ops = &netdev_ethtool_ops; > dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | > NETIF_F_TSO | NETIF_F_TSO6 | > NETIF_F_RXCSUM | NETIF_F_LRO; > diff --git a/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c b/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c > index f8f0738..ddcc81a 100644 > --- a/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c > +++ b/drivers/net/ethernet/neterion/vxge/vxge-ethtool.c > @@ -1128,5 +1128,5 @@ static const struct ethtool_ops vxge_ethtool_ops = { > > void vxge_initialize_ethtool_ops(struct net_device *ndev) > { > - SET_ETHTOOL_OPS(ndev, &vxge_ethtool_ops); > + ndev->ethtool_ops = &vxge_ethtool_ops; > } > diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c > index fddb464..e8235c5 100644 > --- a/drivers/net/ethernet/nvidia/forcedeth.c > +++ b/drivers/net/ethernet/nvidia/forcedeth.c > @@ -5766,7 +5766,7 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) > dev->netdev_ops = &nv_netdev_ops_optimized; > > netif_napi_add(dev, &np->napi, nv_napi_poll, RX_WORK_PER_LOOP); > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > dev->watchdog_timeo = NV_WATCHDOG_TIMEO; > > pci_set_drvdata(pci_dev, dev); > diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c > index 826f0cc..114d2fe 100644 > --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c > +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c > @@ -508,5 +508,5 @@ static const struct ethtool_ops pch_gbe_ethtool_ops = { > > void pch_gbe_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &pch_gbe_ethtool_ops); > + netdev->ethtool_ops = &pch_gbe_ethtool_ops; > } > diff --git a/drivers/net/ethernet/packetengines/hamachi.c b/drivers/net/ethernet/packetengines/hamachi.c > index b6bdeb3..9a997e4 100644 > --- a/drivers/net/ethernet/packetengines/hamachi.c > +++ b/drivers/net/ethernet/packetengines/hamachi.c > @@ -724,10 +724,8 @@ static int hamachi_init_one(struct pci_dev *pdev, > > /* The Hamachi-specific entries in the device structure. */ > dev->netdev_ops = &hamachi_netdev_ops; > - if (chip_tbl[hmp->chip_id].flags & CanHaveMII) > - SET_ETHTOOL_OPS(dev, ðtool_ops); > - else > - SET_ETHTOOL_OPS(dev, ðtool_ops_no_mii); > + dev->ethtool_ops = (chip_tbl[hmp->chip_id].flags & CanHaveMII) ? > + ðtool_ops : ðtool_ops_no_mii; > dev->watchdog_timeo = TX_TIMEOUT; > if (mtu) > dev->mtu = mtu; > diff --git a/drivers/net/ethernet/packetengines/yellowfin.c b/drivers/net/ethernet/packetengines/yellowfin.c > index 9a6cb48..69a8dc0 100644 > --- a/drivers/net/ethernet/packetengines/yellowfin.c > +++ b/drivers/net/ethernet/packetengines/yellowfin.c > @@ -472,7 +472,7 @@ static int yellowfin_init_one(struct pci_dev *pdev, > > /* The Yellowfin-specific entries in the device structure. */ > dev->netdev_ops = &netdev_ops; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > if (mtu) > diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c > index f09c35d..5bf0581 100644 > --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c > +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c > @@ -1373,7 +1373,7 @@ netxen_setup_netdev(struct netxen_adapter *adapter, > > netxen_nic_change_mtu(netdev, netdev->mtu); > > - SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops); > + netdev->ethtool_ops = &netxen_nic_ethtool_ops; > > netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO | > NETIF_F_RXCSUM; > diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c > index 2eabd44..b5d6bc1 100644 > --- a/drivers/net/ethernet/qlogic/qla3xxx.c > +++ b/drivers/net/ethernet/qlogic/qla3xxx.c > @@ -3838,7 +3838,7 @@ static int ql3xxx_probe(struct pci_dev *pdev, > > /* Set driver entry points */ > ndev->netdev_ops = &ql3xxx_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &ql3xxx_ethtool_ops); > + ndev->ethtool_ops = &ql3xxx_ethtool_ops; > ndev->watchdog_timeo = 5 * HZ; > > netif_napi_add(ndev, &qdev->napi, ql_poll, 64); > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > index dbf7539..4bdbdca 100644 > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > @@ -2222,10 +2222,8 @@ qlcnic_setup_netdev(struct qlcnic_adapter *adapter, struct net_device *netdev, > > qlcnic_change_mtu(netdev, netdev->mtu); > > - if (qlcnic_sriov_vf_check(adapter)) > - SET_ETHTOOL_OPS(netdev, &qlcnic_sriov_vf_ethtool_ops); > - else > - SET_ETHTOOL_OPS(netdev, &qlcnic_ethtool_ops); > + netdev->ethtool_ops = (qlcnic_sriov_vf_check(adapter)) ? > + &qlcnic_sriov_vf_ethtool_ops : &qlcnic_ethtool_ops; > > netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM | > NETIF_F_IPV6_CSUM | NETIF_F_GRO | > @@ -2630,7 +2628,7 @@ err_out_disable_pdev: > err_out_maintenance_mode: > set_bit(__QLCNIC_MAINTENANCE_MODE, &adapter->state); > netdev->netdev_ops = &qlcnic_netdev_failed_ops; > - SET_ETHTOOL_OPS(netdev, &qlcnic_ethtool_failed_ops); > + netdev->ethtool_ops = &qlcnic_ethtool_failed_ops; > ahw->port_type = QLCNIC_XGBE; > > if (qlcnic_83xx_check(adapter)) > diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c > index 0a1d76a..79b86e9 100644 > --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c > +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c > @@ -4770,7 +4770,7 @@ static int qlge_probe(struct pci_dev *pdev, > ndev->irq = pdev->irq; > > ndev->netdev_ops = &qlge_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &qlge_ethtool_ops); > + ndev->ethtool_ops = &qlge_ethtool_ops; > ndev->watchdog_timeo = 10 * HZ; > > err = register_netdev(ndev); > diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c > index aa1c079..be425ad 100644 > --- a/drivers/net/ethernet/realtek/r8169.c > +++ b/drivers/net/ethernet/realtek/r8169.c > @@ -7125,7 +7125,7 @@ rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > for (i = 0; i < ETH_ALEN; i++) > dev->dev_addr[i] = RTL_R8(MAC0 + i); > > - SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops); > + dev->ethtool_ops = &rtl8169_ethtool_ops; > dev->watchdog_timeo = RTL8169_TX_TIMEOUT; > > netif_napi_add(dev, &tp->napi, rtl8169_poll, R8169_NAPI_WEIGHT); > diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c > index 6a9509c..967314c 100644 > --- a/drivers/net/ethernet/renesas/sh_eth.c > +++ b/drivers/net/ethernet/renesas/sh_eth.c > @@ -2843,7 +2843,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev) > ndev->netdev_ops = &sh_eth_netdev_ops_tsu; > else > ndev->netdev_ops = &sh_eth_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &sh_eth_ethtool_ops); > + ndev->ethtool_ops = &sh_eth_ethtool_ops; > ndev->watchdog_timeo = TX_TIMEOUT; > > /* debug message level */ > diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c > index 0415fa5..c0981ae 100644 > --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c > +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c > @@ -520,5 +520,5 @@ static const struct ethtool_ops sxgbe_ethtool_ops = { > > void sxgbe_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &sxgbe_ethtool_ops); > + netdev->ethtool_ops = &sxgbe_ethtool_ops; > } > diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c > index 63d595f..1e27404 100644 > --- a/drivers/net/ethernet/sfc/efx.c > +++ b/drivers/net/ethernet/sfc/efx.c > @@ -2248,7 +2248,7 @@ static int efx_register_netdev(struct efx_nic *efx) > } else { > net_dev->netdev_ops = &efx_farch_netdev_ops; > } > - SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops); > + net_dev->ethtool_ops = &efx_ethtool_ops; > net_dev->gso_max_segs = EFX_TSO_MAX_SEGS; > > rtnl_lock(); > diff --git a/drivers/net/ethernet/sis/sis190.c b/drivers/net/ethernet/sis/sis190.c > index acbbe48..a863399 100644 > --- a/drivers/net/ethernet/sis/sis190.c > +++ b/drivers/net/ethernet/sis/sis190.c > @@ -1877,7 +1877,7 @@ static int sis190_init_one(struct pci_dev *pdev, > > dev->netdev_ops = &sis190_netdev_ops; > > - SET_ETHTOOL_OPS(dev, &sis190_ethtool_ops); > + dev->ethtool_ops = &sis190_ethtool_ops; > dev->watchdog_timeo = SIS190_TX_TIMEOUT; > > spin_lock_init(&tp->lock); > diff --git a/drivers/net/ethernet/smsc/smc91c92_cs.c b/drivers/net/ethernet/smsc/smc91c92_cs.c > index c7a4868..6b33127 100644 > --- a/drivers/net/ethernet/smsc/smc91c92_cs.c > +++ b/drivers/net/ethernet/smsc/smc91c92_cs.c > @@ -318,7 +318,7 @@ static int smc91c92_probe(struct pcmcia_device *link) > > /* The SMC91c92-specific entries in the device structure. */ > dev->netdev_ops = &smc_netdev_ops; > - SET_ETHTOOL_OPS(dev, ðtool_ops); > + dev->ethtool_ops = ðtool_ops; > dev->watchdog_timeo = TX_TIMEOUT; > > smc->mii_if.dev = dev; > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > index c5f9cb8..c963394 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c > @@ -784,5 +784,5 @@ static const struct ethtool_ops stmmac_ethtool_ops = { > > void stmmac_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &stmmac_ethtool_ops); > + netdev->ethtool_ops = &stmmac_ethtool_ops; > } > diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c > index 2ead877..38da73a 100644 > --- a/drivers/net/ethernet/tehuti/tehuti.c > +++ b/drivers/net/ethernet/tehuti/tehuti.c > @@ -2413,7 +2413,7 @@ static void bdx_set_ethtool_ops(struct net_device *netdev) > .get_ethtool_stats = bdx_get_ethtool_stats, > }; > > - SET_ETHTOOL_OPS(netdev, &bdx_ethtool_ops); > + netdev->ethtool_ops = &bdx_ethtool_ops; > } > > /** > diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c > index 36aa109..6ecab3c 100644 > --- a/drivers/net/ethernet/ti/cpsw.c > +++ b/drivers/net/ethernet/ti/cpsw.c > @@ -1975,7 +1975,7 @@ static int cpsw_probe_dual_emac(struct platform_device *pdev, > ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; > > ndev->netdev_ops = &cpsw_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); > + ndev->ethtool_ops = &cpsw_ethtool_ops; > netif_napi_add(ndev, &priv_sl2->napi, cpsw_poll, CPSW_POLL_WEIGHT); > > /* register the network device */ > @@ -2204,7 +2204,7 @@ static int cpsw_probe(struct platform_device *pdev) > ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; > > ndev->netdev_ops = &cpsw_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops); > + ndev->ethtool_ops = &cpsw_ethtool_ops; > netif_napi_add(ndev, &priv->napi, cpsw_poll, CPSW_POLL_WEIGHT); > > /* register the network device */ > diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c > index 8f0e69c..e76eae5 100644 > --- a/drivers/net/ethernet/ti/davinci_emac.c > +++ b/drivers/net/ethernet/ti/davinci_emac.c > @@ -1980,7 +1980,7 @@ static int davinci_emac_probe(struct platform_device *pdev) > } > > ndev->netdev_ops = &emac_netdev_ops; > - SET_ETHTOOL_OPS(ndev, ðtool_ops); > + ndev->ethtool_ops = ðtool_ops; > netif_napi_add(ndev, &priv->napi, emac_poll, EMAC_POLL_WEIGHT); > > /* register the network device */ > diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c > index 31e55fb..2170db5 100644 > --- a/drivers/net/hyperv/netvsc_drv.c > +++ b/drivers/net/hyperv/netvsc_drv.c > @@ -715,7 +715,7 @@ static int netvsc_probe(struct hv_device *dev, > net->features = NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_SG | NETIF_F_RXCSUM | > NETIF_F_IP_CSUM | NETIF_F_TSO; > > - SET_ETHTOOL_OPS(net, ðtool_ops); > + net->ethtool_ops = ðtool_ops; > SET_NETDEV_DEV(net, &dev->device); > > /* Notify the netvsc driver of the new device */ > diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c > index 63aa9d9..27536aa 100644 > --- a/drivers/net/ntb_netdev.c > +++ b/drivers/net/ntb_netdev.c > @@ -348,7 +348,7 @@ static int ntb_netdev_probe(struct pci_dev *pdev) > memcpy(ndev->dev_addr, ndev->perm_addr, ndev->addr_len); > > ndev->netdev_ops = &ntb_netdev_ops; > - SET_ETHTOOL_OPS(ndev, &ntb_ethtool_ops); > + ndev->ethtool_ops = &ntb_ethtool_ops; > > dev->qp = ntb_transport_create_queue(ndev, pdev, &ntb_netdev_handlers); > if (!dev->qp) { > diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c > index a849718..dac7a0d 100644 > --- a/drivers/net/rionet.c > +++ b/drivers/net/rionet.c > @@ -494,7 +494,7 @@ static int rionet_setup_netdev(struct rio_mport *mport, struct net_device *ndev) > ndev->mtu = RIO_MAX_MSG_SIZE - 14; > ndev->features = NETIF_F_LLTX; > SET_NETDEV_DEV(ndev, &mport->dev); > - SET_ETHTOOL_OPS(ndev, &rionet_ethtool_ops); > + ndev->ethtool_ops = &rionet_ethtool_ops; > > spin_lock_init(&rnet->lock); > spin_lock_init(&rnet->tx_lock); > diff --git a/drivers/net/usb/catc.c b/drivers/net/usb/catc.c > index 630caf4..8cfc3bb 100644 > --- a/drivers/net/usb/catc.c > +++ b/drivers/net/usb/catc.c > @@ -793,7 +793,7 @@ static int catc_probe(struct usb_interface *intf, const struct usb_device_id *id > > netdev->netdev_ops = &catc_netdev_ops; > netdev->watchdog_timeo = TX_TIMEOUT; > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > > catc->usbdev = usbdev; > catc->netdev = netdev; > diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c > index 660bd5e..a3a0586 100644 > --- a/drivers/net/usb/hso.c > +++ b/drivers/net/usb/hso.c > @@ -2425,7 +2425,7 @@ static void hso_net_init(struct net_device *net) > net->type = ARPHRD_NONE; > net->mtu = DEFAULT_MTU - 14; > net->tx_queue_len = 10; > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > > /* and initialize the semaphore */ > spin_lock_init(&hso_net->net_lock); > diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c > index 421934c..f725707 100644 > --- a/drivers/net/usb/ipheth.c > +++ b/drivers/net/usb/ipheth.c > @@ -524,7 +524,7 @@ static int ipheth_probe(struct usb_interface *intf, > usb_set_intfdata(intf, dev); > > SET_NETDEV_DEV(netdev, &intf->dev); > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > > retval = register_netdev(netdev); > if (retval) { > diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c > index a359d3b..dcb6d33 100644 > --- a/drivers/net/usb/kaweth.c > +++ b/drivers/net/usb/kaweth.c > @@ -1171,7 +1171,7 @@ err_fw: > netdev->netdev_ops = &kaweth_netdev_ops; > netdev->watchdog_timeo = KAWETH_TX_TIMEOUT; > netdev->mtu = le16_to_cpu(kaweth->configuration.segment_size); > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > > /* kaweth is zeroed as part of alloc_netdev */ > INIT_DELAYED_WORK(&kaweth->lowmem_work, kaweth_resubmit_tl); > diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c > index 03e8a15..f840802 100644 > --- a/drivers/net/usb/pegasus.c > +++ b/drivers/net/usb/pegasus.c > @@ -1159,7 +1159,7 @@ static int pegasus_probe(struct usb_interface *intf, > > net->watchdog_timeo = PEGASUS_TX_TIMEOUT; > net->netdev_ops = &pegasus_netdev_ops; > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > pegasus->mii.dev = net; > pegasus->mii.mdio_read = mdio_read; > pegasus->mii.mdio_write = mdio_write; > diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c > index 3fbfb08..9f91c7a 100644 > --- a/drivers/net/usb/r8152.c > +++ b/drivers/net/usb/r8152.c > @@ -3452,7 +3452,7 @@ static int rtl8152_probe(struct usb_interface *intf, > NETIF_F_TSO | NETIF_F_FRAGLIST | > NETIF_F_IPV6_CSUM | NETIF_F_TSO6; > > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > netif_set_gso_max_size(netdev, RTL_LIMITED_TSO_SIZE); > > tp->mii.dev = netdev; > diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c > index da2c458..6e87e57 100644 > --- a/drivers/net/usb/rtl8150.c > +++ b/drivers/net/usb/rtl8150.c > @@ -878,7 +878,7 @@ static int rtl8150_probe(struct usb_interface *intf, > dev->netdev = netdev; > netdev->netdev_ops = &rtl8150_netdev_ops; > netdev->watchdog_timeo = RTL8150_TX_TIMEOUT; > - SET_ETHTOOL_OPS(netdev, &ops); > + netdev->ethtool_ops = &ops; > dev->intr_interval = 100; /* 100ms */ > > if (!alloc_all_urbs(dev)) { > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 7b68746..3f83359 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1646,7 +1646,7 @@ static int virtnet_probe(struct virtio_device *vdev) > dev->netdev_ops = &virtnet_netdev; > dev->features = NETIF_F_HIGHDMA; > > - SET_ETHTOOL_OPS(dev, &virtnet_ethtool_ops); > + dev->ethtool_ops = &virtnet_ethtool_ops; > SET_NETDEV_DEV(dev, &vdev->dev); > > /* Do we support "hardware" checksums? */ > diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c > index 600ab56..00e1202 100644 > --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c > +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c > @@ -635,5 +635,5 @@ static const struct ethtool_ops vmxnet3_ethtool_ops = { > > void vmxnet3_set_ethtool_ops(struct net_device *netdev) > { > - SET_ETHTOOL_OPS(netdev, &vmxnet3_ethtool_ops); > + netdev->ethtool_ops = &vmxnet3_ethtool_ops; > } > diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c > index 82355d5..457359c 100644 > --- a/drivers/net/vxlan.c > +++ b/drivers/net/vxlan.c > @@ -2706,7 +2706,7 @@ static int vxlan_newlink(struct net *net, struct net_device *dev, > return -EEXIST; > } > > - SET_ETHTOOL_OPS(dev, &vxlan_ethtool_ops); > + dev->ethtool_ops = &vxlan_ethtool_ops; > > /* create an fdb entry for a valid default destination */ > if (!vxlan_addr_any(&vxlan->default_dst.remote_ip)) { > diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c > index 67db34e..52919ad 100644 > --- a/drivers/net/wireless/hostap/hostap_main.c > +++ b/drivers/net/wireless/hostap/hostap_main.c > @@ -882,7 +882,7 @@ void hostap_setup_dev(struct net_device *dev, local_info_t *local, > dev->mtu = local->mtu; > > > - SET_ETHTOOL_OPS(dev, &prism2_ethtool_ops); > + dev->ethtool_ops = &prism2_ethtool_ops; > > } > > diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c > index ef05c5c..a755733 100644 > --- a/drivers/net/xen-netback/interface.c > +++ b/drivers/net/xen-netback/interface.c > @@ -386,7 +386,7 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid, > NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | > NETIF_F_TSO | NETIF_F_TSO6; > dev->features = dev->hw_features | NETIF_F_RXCSUM; > - SET_ETHTOOL_OPS(dev, &xenvif_ethtool_ops); > + dev->ethtool_ops = &xenvif_ethtool_ops; > > dev->tx_queue_len = XENVIF_QUEUE_LENGTH; > > diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c > index 158b5e6..895355d 100644 > --- a/drivers/net/xen-netfront.c > +++ b/drivers/net/xen-netfront.c > @@ -1332,7 +1332,7 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev) > */ > netdev->features |= netdev->hw_features; > > - SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops); > + netdev->ethtool_ops = &xennet_ethtool_ops; > SET_NETDEV_DEV(netdev, &dev->dev); > > netif_set_gso_max_size(netdev, XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER); > diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c > index 8dea3f1..047b4da 100644 > --- a/drivers/s390/net/qeth_l2_main.c > +++ b/drivers/s390/net/qeth_l2_main.c > @@ -964,10 +964,9 @@ static int qeth_l2_setup_netdev(struct qeth_card *card) > card->dev->watchdog_timeo = QETH_TX_TIMEOUT; > card->dev->mtu = card->info.initial_mtu; > card->dev->netdev_ops = &qeth_l2_netdev_ops; > - if (card->info.type != QETH_CARD_TYPE_OSN) > - SET_ETHTOOL_OPS(card->dev, &qeth_l2_ethtool_ops); > - else > - SET_ETHTOOL_OPS(card->dev, &qeth_l2_osn_ops); > + card->dev->ethtool_ops > + (card->info.type != QETH_CARD_TYPE_OSN) ? > + &qeth_l2_ethtool_ops : &qeth_l2_osn_ops; > card->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; > card->info.broadcast_capable = 1; > qeth_l2_request_initial_mac(card); > diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c > index 3524d34..0a59d24 100644 > --- a/drivers/s390/net/qeth_l3_main.c > +++ b/drivers/s390/net/qeth_l3_main.c > @@ -3298,7 +3298,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card) > card->dev->ml_priv = card; > card->dev->watchdog_timeo = QETH_TX_TIMEOUT; > card->dev->mtu = card->info.initial_mtu; > - SET_ETHTOOL_OPS(card->dev, &qeth_l3_ethtool_ops); > + card->dev->ethtool_ops = &qeth_l3_ethtool_ops; > card->dev->features |= NETIF_F_HW_VLAN_CTAG_TX | > NETIF_F_HW_VLAN_CTAG_RX | > NETIF_F_HW_VLAN_CTAG_FILTER; > diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c > index d329cf3..15e0f4d 100644 > --- a/drivers/staging/et131x/et131x.c > +++ b/drivers/staging/et131x/et131x.c > @@ -4604,7 +4604,7 @@ static int et131x_pci_setup(struct pci_dev *pdev, > netdev->netdev_ops = &et131x_netdev_ops; > > SET_NETDEV_DEV(netdev, &pdev->dev); > - SET_ETHTOOL_OPS(netdev, &et131x_ethtool_ops); > + netdev->ethtool_ops = &et131x_ethtool_ops; > > adapter = et131x_adapter_init(netdev, pdev); > > diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c > index d6421b9..a6158be 100644 > --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c > +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c > @@ -2249,7 +2249,7 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link, > > ft1000InitProc(dev); > ft1000_card_present = 1; > - SET_ETHTOOL_OPS(dev, &ops); > + dev->ethtool_ops = &ops; > printk(KERN_INFO "ft1000: %s: addr 0x%04lx irq %d, MAC addr %pM\n", > dev->name, dev->base_addr, dev->irq, dev->dev_addr); > return dev; > diff --git a/drivers/staging/netlogic/xlr_net.c b/drivers/staging/netlogic/xlr_net.c > index c83e337..9d95761 100644 > --- a/drivers/staging/netlogic/xlr_net.c > +++ b/drivers/staging/netlogic/xlr_net.c > @@ -1066,7 +1066,7 @@ static int xlr_net_probe(struct platform_device *pdev) > xlr_set_rx_mode(ndev); > > priv->num_rx_desc += MAX_NUM_DESC_SPILL; > - SET_ETHTOOL_OPS(ndev, &xlr_ethtool_ops); > + ndev->ethtool_ops = &xlr_ethtool_ops; > SET_NETDEV_DEV(ndev, &pdev->dev); > > /* Common registers, do one time initialization */ > diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c > index ff7214a..da9dd6b 100644 > --- a/drivers/staging/octeon/ethernet.c > +++ b/drivers/staging/octeon/ethernet.c > @@ -469,7 +469,7 @@ int cvm_oct_common_init(struct net_device *dev) > > /* We do our own locking, Linux doesn't need to */ > dev->features |= NETIF_F_LLTX; > - SET_ETHTOOL_OPS(dev, &cvm_oct_ethtool_ops); > + dev->ethtool_ops = &cvm_oct_ethtool_ops; > > cvm_oct_phy_setup_device(dev); > cvm_oct_set_mac_filter(dev); > diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c > index b7d4f82..ce8e281 100644 > --- a/drivers/usb/gadget/u_ether.c > +++ b/drivers/usb/gadget/u_ether.c > @@ -793,7 +793,7 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g, > > net->netdev_ops = ð_netdev_ops; > > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > > dev->gadget = g; > SET_NETDEV_DEV(net, &g->dev); > @@ -850,7 +850,7 @@ struct net_device *gether_setup_name_default(const char *netname) > > net->netdev_ops = ð_netdev_ops; > > - SET_ETHTOOL_OPS(net, &ops); > + net->ethtool_ops = &ops; > SET_NETDEV_DEVTYPE(net, &gadget_type); > > return net; > diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > index 7ed3a3a..06071f7 100644 > --- a/include/linux/netdevice.h > +++ b/include/linux/netdevice.h > @@ -56,9 +56,6 @@ struct device; > struct phy_device; > /* 802.11 specific */ > struct wireless_dev; > - /* source back-compat hooks */ > -#define SET_ETHTOOL_OPS(netdev,ops) \ > - ( (netdev)->ethtool_ops = (ops) ) > > void netdev_set_default_ethtool_ops(struct net_device *dev, > const struct ethtool_ops *ops); > diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c > index 744a59b..e7ee65d 100644 > --- a/net/batman-adv/soft-interface.c > +++ b/net/batman-adv/soft-interface.c > @@ -884,7 +884,7 @@ static void batadv_softif_init_early(struct net_device *dev) > /* generate random address */ > eth_hw_addr_random(dev); > > - SET_ETHTOOL_OPS(dev, &batadv_ethtool_ops); > + dev->ethtool_ops = &batadv_ethtool_ops; > > memset(priv, 0, sizeof(*priv)); > } > diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c > index 3e2da2c..9212015 100644 > --- a/net/bridge/br_device.c > +++ b/net/bridge/br_device.c > @@ -348,7 +348,7 @@ void br_dev_setup(struct net_device *dev) > > dev->netdev_ops = &br_netdev_ops; > dev->destructor = br_dev_free; > - SET_ETHTOOL_OPS(dev, &br_ethtool_ops); > + dev->ethtool_ops = &br_ethtool_ops; > SET_NETDEV_DEVTYPE(dev, &br_type); > dev->tx_queue_len = 0; > dev->priv_flags = IFF_EBRIDGE; > diff --git a/net/dsa/slave.c b/net/dsa/slave.c > index 02c0e17..64c5af0 100644 > --- a/net/dsa/slave.c > +++ b/net/dsa/slave.c > @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, > return slave_dev; > > slave_dev->features = master->vlan_features; > - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); > + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; > eth_hw_addr_inherit(slave_dev, master); > slave_dev->tx_queue_len = 0; > > diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c > index 729c687..789af92 100644 > --- a/net/openvswitch/vport-internal_dev.c > +++ b/net/openvswitch/vport-internal_dev.c > @@ -130,7 +130,7 @@ static void do_setup(struct net_device *netdev) > netdev->priv_flags &= ~IFF_TX_SKB_SHARING; > netdev->priv_flags |= IFF_LIVE_ADDR_CHANGE; > netdev->destructor = internal_dev_destructor; > - SET_ETHTOOL_OPS(netdev, &internal_dev_ethtool_ops); > + netdev->ethtool_ops = &internal_dev_ethtool_ops; > netdev->tx_queue_len = 0; > > netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST | >-- Peter