aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-13 14:30:00 -0400
committerJeff Garzik <jeff@garzik.org>2006-09-13 14:30:00 -0400
commit7282d491ecaee9883233a0e27283c4c79486279a (patch)
tree172ffa70716f5493db57976ceef7652120b3332f /drivers
parent76fd85937097a0c2ec8ab23bf21dc10992d1c398 (diff)
drivers/net: const-ify ethtool_ops declarations
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/3c501.c2
-rw-r--r--drivers/net/3c501.h2
-rw-r--r--drivers/net/3c503.c4
-rw-r--r--drivers/net/3c505.c2
-rw-r--r--drivers/net/3c507.c4
-rw-r--r--drivers/net/3c509.c4
-rw-r--r--drivers/net/3c515.c4
-rw-r--r--drivers/net/3c523.c4
-rw-r--r--drivers/net/3c527.c4
-rw-r--r--drivers/net/3c59x.c4
-rw-r--r--drivers/net/8139cp.c2
-rw-r--r--drivers/net/8139too.c4
-rw-r--r--drivers/net/acenic.c2
-rw-r--r--drivers/net/amd8111e.c2
-rw-r--r--drivers/net/arm/at91_ether.c2
-rw-r--r--drivers/net/arm/etherh.c2
-rw-r--r--drivers/net/au1000_eth.c2
-rw-r--r--drivers/net/b44.c2
-rw-r--r--drivers/net/bnx2.c2
-rw-r--r--drivers/net/bonding/bond_main.c2
-rw-r--r--drivers/net/cassini.c2
-rw-r--r--drivers/net/chelsio/cxgb2.c2
-rw-r--r--drivers/net/cris/eth_v10.c4
-rw-r--r--drivers/net/dl2k.c4
-rw-r--r--drivers/net/e100.c2
-rw-r--r--drivers/net/e1000/e1000_ethtool.c2
-rw-r--r--drivers/net/eepro.c4
-rw-r--r--drivers/net/eepro100.c4
-rw-r--r--drivers/net/ehea/ehea_ethtool.c2
-rw-r--r--drivers/net/epic100.c4
-rw-r--r--drivers/net/ewrk3.c8
-rw-r--r--drivers/net/fealnx.c4
-rw-r--r--drivers/net/fec_8xx/fec_main.c28
-rw-r--r--drivers/net/forcedeth.c2
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c2
-rw-r--r--drivers/net/gianfar.c2
-rw-r--r--drivers/net/gianfar.h2
-rw-r--r--drivers/net/gianfar_ethtool.c2
-rw-r--r--drivers/net/hamachi.c8
-rw-r--r--drivers/net/ibm_emac/ibm_emac_core.c2
-rw-r--r--drivers/net/ibmveth.c2
-rw-r--r--drivers/net/ioc3-eth.c4
-rw-r--r--drivers/net/iseries_veth.c2
-rw-r--r--drivers/net/ixgb/ixgb_ethtool.c2
-rw-r--r--drivers/net/loopback.c2
-rw-r--r--drivers/net/mv643xx_eth.c4
-rw-r--r--drivers/net/myri10ge/myri10ge.c2
-rw-r--r--drivers/net/natsemi.c4
-rw-r--r--drivers/net/ne2k-pci.c4
-rw-r--r--drivers/net/ns83820.c2
-rw-r--r--drivers/net/pcmcia/3c574_cs.c4
-rw-r--r--drivers/net/pcmcia/3c589_cs.c4
-rw-r--r--drivers/net/pcmcia/axnet_cs.c4
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c4
-rw-r--r--drivers/net/pcmcia/ibmtr_cs.c2
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c4
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c4
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c4
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c4
-rw-r--r--drivers/net/pcnet32.c2
-rw-r--r--drivers/net/qla3xxx.c2
-rw-r--r--drivers/net/r8169.c2
-rw-r--r--drivers/net/rionet.c2
-rw-r--r--drivers/net/s2io.c2
-rw-r--r--drivers/net/s2io.h2
-rw-r--r--drivers/net/sis190.c2
-rw-r--r--drivers/net/sis900.c4
-rw-r--r--drivers/net/sk98lin/skethtool.c2
-rw-r--r--drivers/net/sk98lin/skge.c2
-rw-r--r--drivers/net/skge.c2
-rw-r--r--drivers/net/sky2.c2
-rw-r--r--drivers/net/smc911x.c2
-rw-r--r--drivers/net/smc91x.c2
-rw-r--r--drivers/net/spider_net.h2
-rw-r--r--drivers/net/spider_net_ethtool.c2
-rw-r--r--drivers/net/starfire.c4
-rw-r--r--drivers/net/sunbmac.c2
-rw-r--r--drivers/net/sundance.c4
-rw-r--r--drivers/net/sungem.c2
-rw-r--r--drivers/net/sunhme.c2
-rw-r--r--drivers/net/sunlance.c2
-rw-r--r--drivers/net/sunqe.c2
-rw-r--r--drivers/net/tg3.c2
-rw-r--r--drivers/net/tulip/de2104x.c2
-rw-r--r--drivers/net/tulip/dmfe.c4
-rw-r--r--drivers/net/tulip/tulip_core.c2
-rw-r--r--drivers/net/tulip/uli526x.c4
-rw-r--r--drivers/net/tulip/winbond-840.c4
-rw-r--r--drivers/net/tulip/xircom_cb.c2
-rw-r--r--drivers/net/tulip/xircom_tulip_cb.c4
-rw-r--r--drivers/net/tun.c4
-rw-r--r--drivers/net/typhoon.c2
-rw-r--r--drivers/net/ucc_geth.c15
-rw-r--r--drivers/net/via-rhine.c4
-rw-r--r--drivers/net/via-velocity.c4
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_ethtool.c2
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_ethtool.h2
-rw-r--r--drivers/net/wireless/hostap/hostap.h2
-rw-r--r--drivers/net/wireless/hostap/hostap_ioctl.c2
-rw-r--r--drivers/net/wireless/ipw2100.c2
-rw-r--r--drivers/net/wireless/ipw2200.c2
-rw-r--r--drivers/net/wireless/orinoco.c4
-rw-r--r--drivers/net/wireless/ray_cs.c4
-rw-r--r--drivers/net/wireless/wavelan_cs.c2
-rw-r--r--drivers/net/wireless/wl3501_cs.c2
-rw-r--r--drivers/net/yellowfin.c4
106 files changed, 163 insertions, 178 deletions
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 591e7fb47b9f..1b82bccd8c71 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -881,7 +881,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
881 debug = level; 881 debug = level;
882} 882}
883 883
884static struct ethtool_ops netdev_ethtool_ops = { 884static const struct ethtool_ops netdev_ethtool_ops = {
885 .get_drvinfo = netdev_get_drvinfo, 885 .get_drvinfo = netdev_get_drvinfo,
886 .get_msglevel = netdev_get_msglevel, 886 .get_msglevel = netdev_get_msglevel,
887 .set_msglevel = netdev_set_msglevel, 887 .set_msglevel = netdev_set_msglevel,
diff --git a/drivers/net/3c501.h b/drivers/net/3c501.h
index 965474aa1cc6..39d332474750 100644
--- a/drivers/net/3c501.h
+++ b/drivers/net/3c501.h
@@ -13,7 +13,7 @@ static void el_reset(struct net_device *dev);
13static int el1_close(struct net_device *dev); 13static int el1_close(struct net_device *dev);
14static struct net_device_stats *el1_get_stats(struct net_device *dev); 14static struct net_device_stats *el1_get_stats(struct net_device *dev);
15static void set_multicast_list(struct net_device *dev); 15static void set_multicast_list(struct net_device *dev);
16static struct ethtool_ops netdev_ethtool_ops; 16static const struct ethtool_ops netdev_ethtool_ops;
17 17
18#define EL1_IO_EXTENT 16 18#define EL1_IO_EXTENT 16
19 19
diff --git a/drivers/net/3c503.c b/drivers/net/3c503.c
index 64313e3dfcb8..a34b2206132d 100644
--- a/drivers/net/3c503.c
+++ b/drivers/net/3c503.c
@@ -79,7 +79,7 @@ static void el2_block_input(struct net_device *dev, int count, struct sk_buff *s
79 int ring_offset); 79 int ring_offset);
80static void el2_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, 80static void el2_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
81 int ring_page); 81 int ring_page);
82static struct ethtool_ops netdev_ethtool_ops; 82static const struct ethtool_ops netdev_ethtool_ops;
83 83
84 84
85/* This routine probes for a memory-mapped 3c503 board by looking for 85/* This routine probes for a memory-mapped 3c503 board by looking for
@@ -666,7 +666,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
666 sprintf(info->bus_info, "ISA 0x%lx", dev->base_addr); 666 sprintf(info->bus_info, "ISA 0x%lx", dev->base_addr);
667} 667}
668 668
669static struct ethtool_ops netdev_ethtool_ops = { 669static const struct ethtool_ops netdev_ethtool_ops = {
670 .get_drvinfo = netdev_get_drvinfo, 670 .get_drvinfo = netdev_get_drvinfo,
671}; 671};
672 672
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index f3a88efc86d6..ab8230a68bea 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -1169,7 +1169,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
1169 debug = level; 1169 debug = level;
1170} 1170}
1171 1171
1172static struct ethtool_ops netdev_ethtool_ops = { 1172static const struct ethtool_ops netdev_ethtool_ops = {
1173 .get_drvinfo = netdev_get_drvinfo, 1173 .get_drvinfo = netdev_get_drvinfo,
1174 .get_msglevel = netdev_get_msglevel, 1174 .get_msglevel = netdev_get_msglevel,
1175 .set_msglevel = netdev_set_msglevel, 1175 .set_msglevel = netdev_set_msglevel,
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index 3a95605e18c5..8205a535c5b7 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -294,7 +294,7 @@ static void el16_tx_timeout (struct net_device *dev);
294 294
295static void hardware_send_packet(struct net_device *dev, void *buf, short length, short pad); 295static void hardware_send_packet(struct net_device *dev, void *buf, short length, short pad);
296static void init_82586_mem(struct net_device *dev); 296static void init_82586_mem(struct net_device *dev);
297static struct ethtool_ops netdev_ethtool_ops; 297static const struct ethtool_ops netdev_ethtool_ops;
298static void init_rx_bufs(struct net_device *); 298static void init_rx_bufs(struct net_device *);
299 299
300static int io = 0x300; 300static int io = 0x300;
@@ -919,7 +919,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
919 debug = level; 919 debug = level;
920} 920}
921 921
922static struct ethtool_ops netdev_ethtool_ops = { 922static const struct ethtool_ops netdev_ethtool_ops = {
923 .get_drvinfo = netdev_get_drvinfo, 923 .get_drvinfo = netdev_get_drvinfo,
924 .get_msglevel = netdev_get_msglevel, 924 .get_msglevel = netdev_get_msglevel,
925 .set_msglevel = netdev_set_msglevel, 925 .set_msglevel = netdev_set_msglevel,
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index 48b99beb1e8b..16817306f048 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -200,7 +200,7 @@ static void set_multicast_list(struct net_device *dev);
200static void el3_tx_timeout (struct net_device *dev); 200static void el3_tx_timeout (struct net_device *dev);
201static void el3_down(struct net_device *dev); 201static void el3_down(struct net_device *dev);
202static void el3_up(struct net_device *dev); 202static void el3_up(struct net_device *dev);
203static struct ethtool_ops ethtool_ops; 203static const struct ethtool_ops ethtool_ops;
204#ifdef EL3_SUSPEND 204#ifdef EL3_SUSPEND
205static int el3_suspend(struct device *, pm_message_t); 205static int el3_suspend(struct device *, pm_message_t);
206static int el3_resume(struct device *); 206static int el3_resume(struct device *);
@@ -1349,7 +1349,7 @@ static void el3_set_msglevel(struct net_device *dev, u32 v)
1349 el3_debug = v; 1349 el3_debug = v;
1350} 1350}
1351 1351
1352static struct ethtool_ops ethtool_ops = { 1352static const struct ethtool_ops ethtool_ops = {
1353 .get_drvinfo = el3_get_drvinfo, 1353 .get_drvinfo = el3_get_drvinfo,
1354 .get_settings = el3_get_settings, 1354 .get_settings = el3_get_settings,
1355 .set_settings = el3_set_settings, 1355 .set_settings = el3_set_settings,
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index bde9f5bd3362..91f2232e6050 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -379,7 +379,7 @@ static int corkscrew_close(struct net_device *dev);
379static void update_stats(int addr, struct net_device *dev); 379static void update_stats(int addr, struct net_device *dev);
380static struct net_device_stats *corkscrew_get_stats(struct net_device *dev); 380static struct net_device_stats *corkscrew_get_stats(struct net_device *dev);
381static void set_rx_mode(struct net_device *dev); 381static void set_rx_mode(struct net_device *dev);
382static struct ethtool_ops netdev_ethtool_ops; 382static const struct ethtool_ops netdev_ethtool_ops;
383 383
384 384
385/* 385/*
@@ -1561,7 +1561,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
1561 corkscrew_debug = level; 1561 corkscrew_debug = level;
1562} 1562}
1563 1563
1564static struct ethtool_ops netdev_ethtool_ops = { 1564static const struct ethtool_ops netdev_ethtool_ops = {
1565 .get_drvinfo = netdev_get_drvinfo, 1565 .get_drvinfo = netdev_get_drvinfo,
1566 .get_msglevel = netdev_get_msglevel, 1566 .get_msglevel = netdev_get_msglevel,
1567 .set_msglevel = netdev_set_msglevel, 1567 .set_msglevel = netdev_set_msglevel,
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index 3364eb4aff1e..cf8a0bc3bf34 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -189,7 +189,7 @@ static void elmc_timeout(struct net_device *dev);
189#ifdef ELMC_MULTICAST 189#ifdef ELMC_MULTICAST
190static void set_multicast_list(struct net_device *dev); 190static void set_multicast_list(struct net_device *dev);
191#endif 191#endif
192static struct ethtool_ops netdev_ethtool_ops; 192static const struct ethtool_ops netdev_ethtool_ops;
193 193
194/* helper-functions */ 194/* helper-functions */
195static int init586(struct net_device *dev); 195static int init586(struct net_device *dev);
@@ -1259,7 +1259,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
1259 sprintf(info->bus_info, "MCA 0x%lx", dev->base_addr); 1259 sprintf(info->bus_info, "MCA 0x%lx", dev->base_addr);
1260} 1260}
1261 1261
1262static struct ethtool_ops netdev_ethtool_ops = { 1262static const struct ethtool_ops netdev_ethtool_ops = {
1263 .get_drvinfo = netdev_get_drvinfo, 1263 .get_drvinfo = netdev_get_drvinfo,
1264}; 1264};
1265 1265
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index 323b6e510108..625e57dc3b4a 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -222,7 +222,7 @@ static int mc32_close(struct net_device *dev);
222static struct net_device_stats *mc32_get_stats(struct net_device *dev); 222static struct net_device_stats *mc32_get_stats(struct net_device *dev);
223static void mc32_set_multicast_list(struct net_device *dev); 223static void mc32_set_multicast_list(struct net_device *dev);
224static void mc32_reset_multicast_list(struct net_device *dev); 224static void mc32_reset_multicast_list(struct net_device *dev);
225static struct ethtool_ops netdev_ethtool_ops; 225static const struct ethtool_ops netdev_ethtool_ops;
226 226
227static void cleanup_card(struct net_device *dev) 227static void cleanup_card(struct net_device *dev)
228{ 228{
@@ -1627,7 +1627,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
1627 mc32_debug = level; 1627 mc32_debug = level;
1628} 1628}
1629 1629
1630static struct ethtool_ops netdev_ethtool_ops = { 1630static const struct ethtool_ops netdev_ethtool_ops = {
1631 .get_drvinfo = netdev_get_drvinfo, 1631 .get_drvinfo = netdev_get_drvinfo,
1632 .get_msglevel = netdev_get_msglevel, 1632 .get_msglevel = netdev_get_msglevel,
1633 .set_msglevel = netdev_set_msglevel, 1633 .set_msglevel = netdev_set_msglevel,
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 5ca7a563f0ba..e1e53bbd150b 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -729,7 +729,7 @@ static int vortex_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
729#endif 729#endif
730static void vortex_tx_timeout(struct net_device *dev); 730static void vortex_tx_timeout(struct net_device *dev);
731static void acpi_set_WOL(struct net_device *dev); 731static void acpi_set_WOL(struct net_device *dev);
732static struct ethtool_ops vortex_ethtool_ops; 732static const struct ethtool_ops vortex_ethtool_ops;
733static void set_8021q_mode(struct net_device *dev, int enable); 733static void set_8021q_mode(struct net_device *dev, int enable);
734 734
735/* This driver uses 'options' to pass the media type, full-duplex flag, etc. */ 735/* This driver uses 'options' to pass the media type, full-duplex flag, etc. */
@@ -2873,7 +2873,7 @@ static void vortex_get_drvinfo(struct net_device *dev,
2873 } 2873 }
2874} 2874}
2875 2875
2876static struct ethtool_ops vortex_ethtool_ops = { 2876static const struct ethtool_ops vortex_ethtool_ops = {
2877 .get_drvinfo = vortex_get_drvinfo, 2877 .get_drvinfo = vortex_get_drvinfo,
2878 .get_strings = vortex_get_strings, 2878 .get_strings = vortex_get_strings,
2879 .get_msglevel = vortex_get_msglevel, 2879 .get_msglevel = vortex_get_msglevel,
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 488241c5bdd8..5ba11fa08147 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -1546,7 +1546,7 @@ static void cp_get_ethtool_stats (struct net_device *dev,
1546 pci_free_consistent(cp->pdev, sizeof(*nic_stats), nic_stats, dma); 1546 pci_free_consistent(cp->pdev, sizeof(*nic_stats), nic_stats, dma);
1547} 1547}
1548 1548
1549static struct ethtool_ops cp_ethtool_ops = { 1549static const struct ethtool_ops cp_ethtool_ops = {
1550 .get_drvinfo = cp_get_drvinfo, 1550 .get_drvinfo = cp_get_drvinfo,
1551 .get_regs_len = cp_get_regs_len, 1551 .get_regs_len = cp_get_regs_len,
1552 .get_stats_count = cp_get_stats_count, 1552 .get_stats_count = cp_get_stats_count,
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index 10301d3daa7d..dbc5c0b1b96c 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -639,7 +639,7 @@ static void __set_rx_mode (struct net_device *dev);
639static void rtl8139_hw_start (struct net_device *dev); 639static void rtl8139_hw_start (struct net_device *dev);
640static void rtl8139_thread (void *_data); 640static void rtl8139_thread (void *_data);
641static void rtl8139_tx_timeout_task(void *_data); 641static void rtl8139_tx_timeout_task(void *_data);
642static struct ethtool_ops rtl8139_ethtool_ops; 642static const struct ethtool_ops rtl8139_ethtool_ops;
643 643
644/* write MMIO register, with flush */ 644/* write MMIO register, with flush */
645/* Flush avoids rtl8139 bug w/ posted MMIO writes */ 645/* Flush avoids rtl8139 bug w/ posted MMIO writes */
@@ -2446,7 +2446,7 @@ static void rtl8139_get_strings(struct net_device *dev, u32 stringset, u8 *data)
2446 memcpy(data, ethtool_stats_keys, sizeof(ethtool_stats_keys)); 2446 memcpy(data, ethtool_stats_keys, sizeof(ethtool_stats_keys));
2447} 2447}
2448 2448
2449static struct ethtool_ops rtl8139_ethtool_ops = { 2449static const struct ethtool_ops rtl8139_ethtool_ops = {
2450 .get_drvinfo = rtl8139_get_drvinfo, 2450 .get_drvinfo = rtl8139_get_drvinfo,
2451 .get_settings = rtl8139_get_settings, 2451 .get_settings = rtl8139_get_settings,
2452 .set_settings = rtl8139_set_settings, 2452 .set_settings = rtl8139_set_settings,
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 5c8b9dc5dbf1..0473c6d14b4a 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -451,7 +451,7 @@ static int ace_get_settings(struct net_device *, struct ethtool_cmd *);
451static int ace_set_settings(struct net_device *, struct ethtool_cmd *); 451static int ace_set_settings(struct net_device *, struct ethtool_cmd *);
452static void ace_get_drvinfo(struct net_device *, struct ethtool_drvinfo *); 452static void ace_get_drvinfo(struct net_device *, struct ethtool_drvinfo *);
453 453
454static struct ethtool_ops ace_ethtool_ops = { 454static const struct ethtool_ops ace_ethtool_ops = {
455 .get_settings = ace_get_settings, 455 .get_settings = ace_get_settings,
456 .set_settings = ace_set_settings, 456 .set_settings = ace_set_settings,
457 .get_drvinfo = ace_get_drvinfo, 457 .get_drvinfo = ace_get_drvinfo,
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index a77df854032c..28855a01ed7b 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1645,7 +1645,7 @@ static int amd8111e_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol_
1645 return 0; 1645 return 0;
1646} 1646}
1647 1647
1648static struct ethtool_ops ops = { 1648static const struct ethtool_ops ops = {
1649 .get_drvinfo = amd8111e_get_drvinfo, 1649 .get_drvinfo = amd8111e_get_drvinfo,
1650 .get_regs_len = amd8111e_get_regs_len, 1650 .get_regs_len = amd8111e_get_regs_len,
1651 .get_regs = amd8111e_get_regs, 1651 .get_regs = amd8111e_get_regs,
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index 85493b7b924f..95b28aa01f4f 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -648,7 +648,7 @@ static void at91ether_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo
648 strlcpy(info->bus_info, dev->class_dev.dev->bus_id, sizeof(info->bus_info)); 648 strlcpy(info->bus_info, dev->class_dev.dev->bus_id, sizeof(info->bus_info));
649} 649}
650 650
651static struct ethtool_ops at91ether_ethtool_ops = { 651static const struct ethtool_ops at91ether_ethtool_ops = {
652 .get_settings = at91ether_get_settings, 652 .get_settings = at91ether_get_settings,
653 .set_settings = at91ether_set_settings, 653 .set_settings = at91ether_set_settings,
654 .get_drvinfo = at91ether_get_drvinfo, 654 .get_drvinfo = at91ether_get_drvinfo,
diff --git a/drivers/net/arm/etherh.c b/drivers/net/arm/etherh.c
index d52deb8d2075..4ae98970b282 100644
--- a/drivers/net/arm/etherh.c
+++ b/drivers/net/arm/etherh.c
@@ -626,7 +626,7 @@ static int etherh_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
626 return 0; 626 return 0;
627} 627}
628 628
629static struct ethtool_ops etherh_ethtool_ops = { 629static const struct ethtool_ops etherh_ethtool_ops = {
630 .get_settings = etherh_get_settings, 630 .get_settings = etherh_get_settings,
631 .set_settings = etherh_set_settings, 631 .set_settings = etherh_set_settings,
632 .get_drvinfo = etherh_get_drvinfo, 632 .get_drvinfo = etherh_get_drvinfo,
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index ec493368d784..ac33b1b9cf4a 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -608,7 +608,7 @@ au1000_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
608 info->regdump_len = 0; 608 info->regdump_len = 0;
609} 609}
610 610
611static struct ethtool_ops au1000_ethtool_ops = { 611static const struct ethtool_ops au1000_ethtool_ops = {
612 .get_settings = au1000_get_settings, 612 .get_settings = au1000_get_settings,
613 .set_settings = au1000_set_settings, 613 .set_settings = au1000_set_settings,
614 .get_drvinfo = au1000_get_drvinfo, 614 .get_drvinfo = au1000_get_drvinfo,
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 17eb2912971d..e891ea2ecc3c 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -2012,7 +2012,7 @@ static int b44_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
2012 return 0; 2012 return 0;
2013} 2013}
2014 2014
2015static struct ethtool_ops b44_ethtool_ops = { 2015static const struct ethtool_ops b44_ethtool_ops = {
2016 .get_drvinfo = b44_get_drvinfo, 2016 .get_drvinfo = b44_get_drvinfo,
2017 .get_settings = b44_get_settings, 2017 .get_settings = b44_get_settings,
2018 .set_settings = b44_set_settings, 2018 .set_settings = b44_set_settings,
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index eae5a55103b0..b158de28d6f9 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -5429,7 +5429,7 @@ bnx2_phys_id(struct net_device *dev, u32 data)
5429 return 0; 5429 return 0;
5430} 5430}
5431 5431
5432static struct ethtool_ops bnx2_ethtool_ops = { 5432static const struct ethtool_ops bnx2_ethtool_ops = {
5433 .get_settings = bnx2_get_settings, 5433 .get_settings = bnx2_get_settings,
5434 .set_settings = bnx2_set_settings, 5434 .set_settings = bnx2_set_settings,
5435 .get_drvinfo = bnx2_get_drvinfo, 5435 .get_drvinfo = bnx2_get_drvinfo,
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 8b951238f3a2..850aae21a2fe 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4130,7 +4130,7 @@ static void bond_ethtool_get_drvinfo(struct net_device *bond_dev,
4130 snprintf(drvinfo->fw_version, 32, "%d", BOND_ABI_VERSION); 4130 snprintf(drvinfo->fw_version, 32, "%d", BOND_ABI_VERSION);
4131} 4131}
4132 4132
4133static struct ethtool_ops bond_ethtool_ops = { 4133static const struct ethtool_ops bond_ethtool_ops = {
4134 .get_tx_csum = ethtool_op_get_tx_csum, 4134 .get_tx_csum = ethtool_op_get_tx_csum,
4135 .get_tso = ethtool_op_get_tso, 4135 .get_tso = ethtool_op_get_tso,
4136 .get_ufo = ethtool_op_get_ufo, 4136 .get_ufo = ethtool_op_get_ufo,
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 7ed376448a68..275057ca3dbc 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -4812,7 +4812,7 @@ static void cas_get_ethtool_stats(struct net_device *dev,
4812 BUG_ON(i != CAS_NUM_STAT_KEYS); 4812 BUG_ON(i != CAS_NUM_STAT_KEYS);
4813} 4813}
4814 4814
4815static struct ethtool_ops cas_ethtool_ops = { 4815static const struct ethtool_ops cas_ethtool_ops = {
4816 .get_drvinfo = cas_get_drvinfo, 4816 .get_drvinfo = cas_get_drvinfo,
4817 .get_settings = cas_get_settings, 4817 .get_settings = cas_get_settings,
4818 .set_settings = cas_set_settings, 4818 .set_settings = cas_set_settings,
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index b6de184e4699..5f1b06753462 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -779,7 +779,7 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *e,
779 return 0; 779 return 0;
780} 780}
781 781
782static struct ethtool_ops t1_ethtool_ops = { 782static const struct ethtool_ops t1_ethtool_ops = {
783 .get_settings = get_settings, 783 .get_settings = get_settings,
784 .set_settings = set_settings, 784 .set_settings = set_settings,
785 .get_drvinfo = get_drvinfo, 785 .get_drvinfo = get_drvinfo,
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c
index 0eb1f8787ed7..f1501b6f247e 100644
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
@@ -434,7 +434,7 @@ static void e100_reset_transceiver(struct net_device* net);
434static void e100_clear_network_leds(unsigned long dummy); 434static void e100_clear_network_leds(unsigned long dummy);
435static void e100_set_network_leds(int active); 435static void e100_set_network_leds(int active);
436 436
437static struct ethtool_ops e100_ethtool_ops; 437static const struct ethtool_ops e100_ethtool_ops;
438 438
439static void broadcom_check_speed(struct net_device* dev); 439static void broadcom_check_speed(struct net_device* dev);
440static void broadcom_check_duplex(struct net_device* dev); 440static void broadcom_check_duplex(struct net_device* dev);
@@ -1552,7 +1552,7 @@ static int e100_nway_reset(struct net_device *dev)
1552 return 0; 1552 return 0;
1553} 1553}
1554 1554
1555static struct ethtool_ops e100_ethtool_ops = { 1555static const struct ethtool_ops e100_ethtool_ops = {
1556 .get_settings = e100_get_settings, 1556 .get_settings = e100_get_settings,
1557 .set_settings = e100_set_settings, 1557 .set_settings = e100_set_settings,
1558 .get_drvinfo = e100_get_drvinfo, 1558 .get_drvinfo = e100_get_drvinfo,
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 5c520f6f66ef..c5c80da239de 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -83,7 +83,7 @@ static int mii_read (struct net_device *dev, int phy_addr, int reg_num);
83static int mii_write (struct net_device *dev, int phy_addr, int reg_num, 83static int mii_write (struct net_device *dev, int phy_addr, int reg_num,
84 u16 data); 84 u16 data);
85 85
86static struct ethtool_ops ethtool_ops; 86static const struct ethtool_ops ethtool_ops;
87 87
88static int __devinit 88static int __devinit
89rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent) 89rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
@@ -1261,7 +1261,7 @@ static u32 rio_get_link(struct net_device *dev)
1261 return np->link_status; 1261 return np->link_status;
1262} 1262}
1263 1263
1264static struct ethtool_ops ethtool_ops = { 1264static const struct ethtool_ops ethtool_ops = {
1265 .get_drvinfo = rio_get_drvinfo, 1265 .get_drvinfo = rio_get_drvinfo,
1266 .get_settings = rio_get_settings, 1266 .get_settings = rio_get_settings,
1267 .set_settings = rio_set_settings, 1267 .set_settings = rio_set_settings,
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 47d970896a5c..dc5e38aefca6 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2477,7 +2477,7 @@ static void e100_get_strings(struct net_device *netdev, u32 stringset, u8 *data)
2477 } 2477 }
2478} 2478}
2479 2479
2480static struct ethtool_ops e100_ethtool_ops = { 2480static const struct ethtool_ops e100_ethtool_ops = {
2481 .get_settings = e100_get_settings, 2481 .get_settings = e100_get_settings,
2482 .set_settings = e100_set_settings, 2482 .set_settings = e100_set_settings,
2483 .get_drvinfo = e100_get_drvinfo, 2483 .get_drvinfo = e100_get_drvinfo,
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
index 3fccffdb27b5..0759bf0dcce6 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -1922,7 +1922,7 @@ e1000_get_strings(struct net_device *netdev, uint32_t stringset, uint8_t *data)
1922 } 1922 }
1923} 1923}
1924 1924
1925static struct ethtool_ops e1000_ethtool_ops = { 1925static const struct ethtool_ops e1000_ethtool_ops = {
1926 .get_settings = e1000_get_settings, 1926 .get_settings = e1000_get_settings,
1927 .set_settings = e1000_set_settings, 1927 .set_settings = e1000_set_settings,
1928 .get_drvinfo = e1000_get_drvinfo, 1928 .get_drvinfo = e1000_get_drvinfo,
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index bf9efa75390f..09ff9b9418f4 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -743,7 +743,7 @@ static void __init eepro_print_info (struct net_device *dev)
743 printEEPROMInfo(dev); 743 printEEPROMInfo(dev);
744} 744}
745 745
746static struct ethtool_ops eepro_ethtool_ops; 746static const struct ethtool_ops eepro_ethtool_ops;
747 747
748/* This is the real probe routine. Linux has a history of friendly device 748/* This is the real probe routine. Linux has a history of friendly device
749 probes on the ISA bus. A good device probe avoids doing writes, and 749 probes on the ISA bus. A good device probe avoids doing writes, and
@@ -1771,7 +1771,7 @@ static void eepro_ethtool_get_drvinfo(struct net_device *dev,
1771 sprintf(drvinfo->bus_info, "ISA 0x%lx", dev->base_addr); 1771 sprintf(drvinfo->bus_info, "ISA 0x%lx", dev->base_addr);
1772} 1772}
1773 1773
1774static struct ethtool_ops eepro_ethtool_ops = { 1774static const struct ethtool_ops eepro_ethtool_ops = {
1775 .get_settings = eepro_ethtool_get_settings, 1775 .get_settings = eepro_ethtool_get_settings,
1776 .get_drvinfo = eepro_ethtool_get_drvinfo, 1776 .get_drvinfo = eepro_ethtool_get_drvinfo,
1777}; 1777};
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index 4ee87903c9cf..499e93b31f54 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -494,7 +494,7 @@ static struct net_device_stats *speedo_get_stats(struct net_device *dev);
494static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 494static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
495static void set_rx_mode(struct net_device *dev); 495static void set_rx_mode(struct net_device *dev);
496static void speedo_show_state(struct net_device *dev); 496static void speedo_show_state(struct net_device *dev);
497static struct ethtool_ops ethtool_ops; 497static const struct ethtool_ops ethtool_ops;
498 498
499 499
500 500
@@ -2015,7 +2015,7 @@ static void speedo_set_msglevel(struct net_device *dev, u32 v)
2015 sp->msg_enable = v; 2015 sp->msg_enable = v;
2016} 2016}
2017 2017
2018static struct ethtool_ops ethtool_ops = { 2018static const struct ethtool_ops ethtool_ops = {
2019 .get_drvinfo = speedo_get_drvinfo, 2019 .get_drvinfo = speedo_get_drvinfo,
2020 .get_settings = speedo_get_settings, 2020 .get_settings = speedo_get_settings,
2021 .set_settings = speedo_set_settings, 2021 .set_settings = speedo_set_settings,
diff --git a/drivers/net/ehea/ehea_ethtool.c b/drivers/net/ehea/ehea_ethtool.c
index 6906af6277c8..82eb2fb8c75e 100644
--- a/drivers/net/ehea/ehea_ethtool.c
+++ b/drivers/net/ehea/ehea_ethtool.c
@@ -270,7 +270,7 @@ static void ehea_get_ethtool_stats(struct net_device *dev,
270 kfree(cb6); 270 kfree(cb6);
271} 271}
272 272
273struct ethtool_ops ehea_ethtool_ops = { 273const struct ethtool_ops ehea_ethtool_ops = {
274 .get_settings = ehea_get_settings, 274 .get_settings = ehea_get_settings,
275 .get_drvinfo = ehea_get_drvinfo, 275 .get_drvinfo = ehea_get_drvinfo,
276 .get_msglevel = ehea_get_msglevel, 276 .get_msglevel = ehea_get_msglevel,
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index b885b2029b49..ba2565ee0439 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -299,7 +299,7 @@ static int epic_rx(struct net_device *dev, int budget);
299static int epic_poll(struct net_device *dev, int *budget); 299static int epic_poll(struct net_device *dev, int *budget);
300static irqreturn_t epic_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 300static irqreturn_t epic_interrupt(int irq, void *dev_instance, struct pt_regs *regs);
301static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 301static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
302static struct ethtool_ops netdev_ethtool_ops; 302static const struct ethtool_ops netdev_ethtool_ops;
303static int epic_close(struct net_device *dev); 303static int epic_close(struct net_device *dev);
304static struct net_device_stats *epic_get_stats(struct net_device *dev); 304static struct net_device_stats *epic_get_stats(struct net_device *dev);
305static void set_rx_mode(struct net_device *dev); 305static void set_rx_mode(struct net_device *dev);
@@ -1492,7 +1492,7 @@ static void ethtool_complete(struct net_device *dev)
1492 } 1492 }
1493} 1493}
1494 1494
1495static struct ethtool_ops netdev_ethtool_ops = { 1495static const struct ethtool_ops netdev_ethtool_ops = {
1496 .get_drvinfo = netdev_get_drvinfo, 1496 .get_drvinfo = netdev_get_drvinfo,
1497 .get_settings = netdev_get_settings, 1497 .get_settings = netdev_get_settings,
1498 .set_settings = netdev_set_settings, 1498 .set_settings = netdev_set_settings,
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 78a1c425a9ab..75a43f7c70cf 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -305,8 +305,8 @@ static int ewrk3_close(struct net_device *dev);
305static struct net_device_stats *ewrk3_get_stats(struct net_device *dev); 305static struct net_device_stats *ewrk3_get_stats(struct net_device *dev);
306static void set_multicast_list(struct net_device *dev); 306static void set_multicast_list(struct net_device *dev);
307static int ewrk3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 307static int ewrk3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
308static struct ethtool_ops ethtool_ops_203; 308static const struct ethtool_ops ethtool_ops_203;
309static struct ethtool_ops ethtool_ops; 309static const struct ethtool_ops ethtool_ops;
310 310
311/* 311/*
312 ** Private functions 312 ** Private functions
@@ -1666,14 +1666,14 @@ static int ewrk3_phys_id(struct net_device *dev, u32 data)
1666 return signal_pending(current) ? -ERESTARTSYS : 0; 1666 return signal_pending(current) ? -ERESTARTSYS : 0;
1667} 1667}
1668 1668
1669static struct ethtool_ops ethtool_ops_203 = { 1669static const struct ethtool_ops ethtool_ops_203 = {
1670 .get_drvinfo = ewrk3_get_drvinfo, 1670 .get_drvinfo = ewrk3_get_drvinfo,
1671 .get_settings = ewrk3_get_settings, 1671 .get_settings = ewrk3_get_settings,
1672 .set_settings = ewrk3_set_settings, 1672 .set_settings = ewrk3_set_settings,
1673 .phys_id = ewrk3_phys_id, 1673 .phys_id = ewrk3_phys_id,
1674}; 1674};
1675 1675
1676static struct ethtool_ops ethtool_ops = { 1676static const struct ethtool_ops ethtool_ops = {
1677 .get_drvinfo = ewrk3_get_drvinfo, 1677 .get_drvinfo = ewrk3_get_drvinfo,
1678 .get_settings = ewrk3_get_settings, 1678 .get_settings = ewrk3_get_settings,
1679 .set_settings = ewrk3_set_settings, 1679 .set_settings = ewrk3_set_settings,
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index b7f471651df1..191bd429076a 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -440,7 +440,7 @@ static void set_rx_mode(struct net_device *dev);
440static void __set_rx_mode(struct net_device *dev); 440static void __set_rx_mode(struct net_device *dev);
441static struct net_device_stats *get_stats(struct net_device *dev); 441static struct net_device_stats *get_stats(struct net_device *dev);
442static int mii_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 442static int mii_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
443static struct ethtool_ops netdev_ethtool_ops; 443static const struct ethtool_ops netdev_ethtool_ops;
444static int netdev_close(struct net_device *dev); 444static int netdev_close(struct net_device *dev);
445static void reset_rx_descriptors(struct net_device *dev); 445static void reset_rx_descriptors(struct net_device *dev);
446static void reset_tx_descriptors(struct net_device *dev); 446static void reset_tx_descriptors(struct net_device *dev);
@@ -1885,7 +1885,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 value)
1885 debug = value; 1885 debug = value;
1886} 1886}
1887 1887
1888static struct ethtool_ops netdev_ethtool_ops = { 1888static const struct ethtool_ops netdev_ethtool_ops = {
1889 .get_drvinfo = netdev_get_drvinfo, 1889 .get_drvinfo = netdev_get_drvinfo,
1890 .get_settings = netdev_get_settings, 1890 .get_settings = netdev_get_settings,
1891 .set_settings = netdev_set_settings, 1891 .set_settings = netdev_set_settings,
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index 282b1452c39a..22ac2df1aeb0 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -1034,20 +1034,20 @@ static void fec_set_msglevel(struct net_device *dev, __u32 value)
1034 fep->msg_enable = value; 1034 fep->msg_enable = value;
1035} 1035}
1036 1036
1037static struct ethtool_ops fec_ethtool_ops = { 1037static const struct ethtool_ops fec_ethtool_ops = {
1038 .get_drvinfo = fec_get_drvinfo, 1038 .get_drvinfo = fec_get_drvinfo,
1039 .get_regs_len = fec_get_regs_len, 1039 .get_regs_len = fec_get_regs_len,
1040 .get_settings = fec_get_settings, 1040 .get_settings = fec_get_settings,
1041 .set_settings = fec_set_settings, 1041 .set_settings = fec_set_settings,
1042 .nway_reset = fec_nway_reset, 1042 .nway_reset = fec_nway_reset,
1043 .get_link = ethtool_op_get_link, 1043 .get_link = ethtool_op_get_link,
1044 .get_msglevel = fec_get_msglevel, 1044 .get_msglevel = fec_get_msglevel,
1045 .set_msglevel = fec_set_msglevel, 1045 .set_msglevel = fec_set_msglevel,
1046 .get_tx_csum = ethtool_op_get_tx_csum, 1046 .get_tx_csum = ethtool_op_get_tx_csum,
1047 .set_tx_csum = ethtool_op_set_tx_csum, /* local! */ 1047 .set_tx_csum = ethtool_op_set_tx_csum, /* local! */
1048 .get_sg = ethtool_op_get_sg, 1048 .get_sg = ethtool_op_get_sg,
1049 .set_sg = ethtool_op_set_sg, 1049 .set_sg = ethtool_op_set_sg,
1050 .get_regs = fec_get_regs, 1050 .get_regs = fec_get_regs,
1051}; 1051};
1052 1052
1053static int fec_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) 1053static int fec_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 59f9a515c07c..b8df5ca4e6aa 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -3962,7 +3962,7 @@ static void nv_get_strings(struct net_device *dev, u32 stringset, u8 *buffer)
3962 } 3962 }
3963} 3963}
3964 3964
3965static struct ethtool_ops ops = { 3965static const struct ethtool_ops ops = {
3966 .get_drvinfo = nv_get_drvinfo, 3966 .get_drvinfo = nv_get_drvinfo,
3967 .get_link = ethtool_op_get_link, 3967 .get_link = ethtool_op_get_link,
3968 .get_wol = nv_get_wol, 3968 .get_wol = nv_get_wol,
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index df62506a1787..34412bc7c4b6 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -908,7 +908,7 @@ static void fs_set_msglevel(struct net_device *dev, u32 value)
908 fep->msg_enable = value; 908 fep->msg_enable = value;
909} 909}
910 910
911static struct ethtool_ops fs_ethtool_ops = { 911static const struct ethtool_ops fs_ethtool_ops = {
912 .get_drvinfo = fs_get_drvinfo, 912 .get_drvinfo = fs_get_drvinfo,
913 .get_regs_len = fs_get_regs_len, 913 .get_regs_len = fs_get_regs_len,
914 .get_settings = fs_get_settings, 914 .get_settings = fs_get_settings,
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index bf3aa275ef4a..4788a41da1c0 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -143,7 +143,7 @@ void gfar_start(struct net_device *dev);
143static void gfar_clear_exact_match(struct net_device *dev); 143static void gfar_clear_exact_match(struct net_device *dev);
144static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr); 144static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr);
145 145
146extern struct ethtool_ops gfar_ethtool_ops; 146extern const struct ethtool_ops gfar_ethtool_ops;
147 147
148MODULE_AUTHOR("Freescale Semiconductor, Inc"); 148MODULE_AUTHOR("Freescale Semiconductor, Inc");
149MODULE_DESCRIPTION("Gianfar Ethernet Driver"); 149MODULE_DESCRIPTION("Gianfar Ethernet Driver");
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index f87bbc408dae..c35d47c40c39 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -754,8 +754,6 @@ static inline void gfar_write(volatile unsigned __iomem *addr, u32 val)
754 out_be32(addr, val); 754 out_be32(addr, val);
755} 755}
756 756
757extern struct ethtool_ops *gfar_op_array[];
758
759extern irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs); 757extern irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs);
760extern int startup_gfar(struct net_device *dev); 758extern int startup_gfar(struct net_device *dev);
761extern void stop_gfar(struct net_device *dev); 759extern void stop_gfar(struct net_device *dev);
diff --git a/drivers/net/gianfar_ethtool.c b/drivers/net/gianfar_ethtool.c
index de8da82cb7ee..6d71bea5e900 100644
--- a/drivers/net/gianfar_ethtool.c
+++ b/drivers/net/gianfar_ethtool.c
@@ -567,7 +567,7 @@ static void gfar_set_msglevel(struct net_device *dev, uint32_t data)
567} 567}
568 568
569 569
570struct ethtool_ops gfar_ethtool_ops = { 570const struct ethtool_ops gfar_ethtool_ops = {
571 .get_settings = gfar_gsettings, 571 .get_settings = gfar_gsettings,
572 .set_settings = gfar_ssettings, 572 .set_settings = gfar_ssettings,
573 .get_drvinfo = gfar_gdrvinfo, 573 .get_drvinfo = gfar_gdrvinfo,
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index a860c81e4d87..b59bab9e9792 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -563,8 +563,8 @@ static void hamachi_error(struct net_device *dev, int intr_status);
563static int hamachi_close(struct net_device *dev); 563static int hamachi_close(struct net_device *dev);
564static struct net_device_stats *hamachi_get_stats(struct net_device *dev); 564static struct net_device_stats *hamachi_get_stats(struct net_device *dev);
565static void set_rx_mode(struct net_device *dev); 565static void set_rx_mode(struct net_device *dev);
566static struct ethtool_ops ethtool_ops; 566static const struct ethtool_ops ethtool_ops;
567static struct ethtool_ops ethtool_ops_no_mii; 567static const struct ethtool_ops ethtool_ops_no_mii;
568 568
569static int __devinit hamachi_init_one (struct pci_dev *pdev, 569static int __devinit hamachi_init_one (struct pci_dev *pdev,
570 const struct pci_device_id *ent) 570 const struct pci_device_id *ent)
@@ -1919,7 +1919,7 @@ static u32 hamachi_get_link(struct net_device *dev)
1919 return mii_link_ok(&np->mii_if); 1919 return mii_link_ok(&np->mii_if);
1920} 1920}
1921 1921
1922static struct ethtool_ops ethtool_ops = { 1922static const struct ethtool_ops ethtool_ops = {
1923 .begin = check_if_running, 1923 .begin = check_if_running,
1924 .get_drvinfo = hamachi_get_drvinfo, 1924 .get_drvinfo = hamachi_get_drvinfo,
1925 .get_settings = hamachi_get_settings, 1925 .get_settings = hamachi_get_settings,
@@ -1928,7 +1928,7 @@ static struct ethtool_ops ethtool_ops = {
1928 .get_link = hamachi_get_link, 1928 .get_link = hamachi_get_link,
1929}; 1929};
1930 1930
1931static struct ethtool_ops ethtool_ops_no_mii = { 1931static const struct ethtool_ops ethtool_ops_no_mii = {
1932 .begin = check_if_running, 1932 .begin = check_if_running,
1933 .get_drvinfo = hamachi_get_drvinfo, 1933 .get_drvinfo = hamachi_get_drvinfo,
1934}; 1934};
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index 82468e2dc799..944eea66e790 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -1883,7 +1883,7 @@ static void emac_ethtool_get_drvinfo(struct net_device *ndev,
1883 info->regdump_len = emac_ethtool_get_regs_len(ndev); 1883 info->regdump_len = emac_ethtool_get_regs_len(ndev);
1884} 1884}
1885 1885
1886static struct ethtool_ops emac_ethtool_ops = { 1886static const struct ethtool_ops emac_ethtool_ops = {
1887 .get_settings = emac_ethtool_get_settings, 1887 .get_settings = emac_ethtool_get_settings,
1888 .set_settings = emac_ethtool_set_settings, 1888 .set_settings = emac_ethtool_set_settings,
1889 .get_drvinfo = emac_ethtool_get_drvinfo, 1889 .get_drvinfo = emac_ethtool_get_drvinfo,
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 0464e78f733a..48e68f5d1651 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -606,7 +606,7 @@ static u32 netdev_get_link(struct net_device *dev) {
606 return 1; 606 return 1;
607} 607}
608 608
609static struct ethtool_ops netdev_ethtool_ops = { 609static const struct ethtool_ops netdev_ethtool_ops = {
610 .get_drvinfo = netdev_get_drvinfo, 610 .get_drvinfo = netdev_get_drvinfo,
611 .get_settings = netdev_get_settings, 611 .get_settings = netdev_get_settings,
612 .get_link = netdev_get_link, 612 .get_link = netdev_get_link,
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index fbda7614d0ef..7acba88f9b56 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -115,7 +115,7 @@ static inline void ioc3_stop(struct ioc3_private *ip);
115static void ioc3_init(struct net_device *dev); 115static void ioc3_init(struct net_device *dev);
116 116
117static const char ioc3_str[] = "IOC3 Ethernet"; 117static const char ioc3_str[] = "IOC3 Ethernet";
118static struct ethtool_ops ioc3_ethtool_ops; 118static const struct ethtool_ops ioc3_ethtool_ops;
119 119
120/* We use this to acquire receive skb's that we can DMA directly into. */ 120/* We use this to acquire receive skb's that we can DMA directly into. */
121 121
@@ -1580,7 +1580,7 @@ static u32 ioc3_get_link(struct net_device *dev)
1580 return rc; 1580 return rc;
1581} 1581}
1582 1582
1583static struct ethtool_ops ioc3_ethtool_ops = { 1583static const struct ethtool_ops ioc3_ethtool_ops = {
1584 .get_drvinfo = ioc3_get_drvinfo, 1584 .get_drvinfo = ioc3_get_drvinfo,
1585 .get_settings = ioc3_get_settings, 1585 .get_settings = ioc3_get_settings,
1586 .set_settings = ioc3_set_settings, 1586 .set_settings = ioc3_set_settings,
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
index cdc14401cdbe..41b1d08fd57b 100644
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
@@ -1029,7 +1029,7 @@ static u32 veth_get_link(struct net_device *dev)
1029 return 1; 1029 return 1;
1030} 1030}
1031 1031
1032static struct ethtool_ops ops = { 1032static const struct ethtool_ops ops = {
1033 .get_drvinfo = veth_get_drvinfo, 1033 .get_drvinfo = veth_get_drvinfo,
1034 .get_settings = veth_get_settings, 1034 .get_settings = veth_get_settings,
1035 .get_link = veth_get_link, 1035 .get_link = veth_get_link,
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c
index ba621083830a..64a383e4e892 100644
--- a/drivers/net/ixgb/ixgb_ethtool.c
+++ b/drivers/net/ixgb/ixgb_ethtool.c
@@ -699,7 +699,7 @@ ixgb_get_strings(struct net_device *netdev, uint32_t stringset, uint8_t *data)
699 } 699 }
700} 700}
701 701
702static struct ethtool_ops ixgb_ethtool_ops = { 702static const struct ethtool_ops ixgb_ethtool_ops = {
703 .get_settings = ixgb_get_settings, 703 .get_settings = ixgb_get_settings,
704 .set_settings = ixgb_set_settings, 704 .set_settings = ixgb_set_settings,
705 .get_drvinfo = ixgb_get_drvinfo, 705 .get_drvinfo = ixgb_get_drvinfo,
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c
index 4a9f40cdba5a..f429b19bf620 100644
--- a/drivers/net/loopback.c
+++ b/drivers/net/loopback.c
@@ -190,7 +190,7 @@ static u32 loopback_get_link(struct net_device *dev)
190 return 1; 190 return 1;
191} 191}
192 192
193static struct ethtool_ops loopback_ethtool_ops = { 193static const struct ethtool_ops loopback_ethtool_ops = {
194 .get_link = loopback_get_link, 194 .get_link = loopback_get_link,
195 .get_tso = ethtool_op_get_tso, 195 .get_tso = ethtool_op_get_tso,
196 .set_tso = ethtool_op_set_tso, 196 .set_tso = ethtool_op_set_tso,
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 70fe838872db..0917a767faf8 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -74,7 +74,7 @@ static int ethernet_phy_detect(unsigned int eth_port_num);
74static int mv643xx_mdio_read(struct net_device *dev, int phy_id, int location); 74static int mv643xx_mdio_read(struct net_device *dev, int phy_id, int location);
75static void mv643xx_mdio_write(struct net_device *dev, int phy_id, int location, int val); 75static void mv643xx_mdio_write(struct net_device *dev, int phy_id, int location, int val);
76static int mv643xx_eth_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); 76static int mv643xx_eth_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
77static struct ethtool_ops mv643xx_ethtool_ops; 77static const struct ethtool_ops mv643xx_ethtool_ops;
78 78
79static char mv643xx_driver_name[] = "mv643xx_eth"; 79static char mv643xx_driver_name[] = "mv643xx_eth";
80static char mv643xx_driver_version[] = "1.0"; 80static char mv643xx_driver_version[] = "1.0";
@@ -2766,7 +2766,7 @@ static int mv643xx_eth_do_ioctl(struct net_device *dev, struct ifreq *ifr, int c
2766 return generic_mii_ioctl(&mp->mii, if_mii(ifr), cmd, NULL); 2766 return generic_mii_ioctl(&mp->mii, if_mii(ifr), cmd, NULL);
2767} 2767}
2768 2768
2769static struct ethtool_ops mv643xx_ethtool_ops = { 2769static const struct ethtool_ops mv643xx_ethtool_ops = {
2770 .get_settings = mv643xx_get_settings, 2770 .get_settings = mv643xx_get_settings,
2771 .set_settings = mv643xx_set_settings, 2771 .set_settings = mv643xx_set_settings,
2772 .get_drvinfo = mv643xx_get_drvinfo, 2772 .get_drvinfo = mv643xx_get_drvinfo,
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index b19e2034d11f..2773440c84be 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1389,7 +1389,7 @@ static u32 myri10ge_get_msglevel(struct net_device *netdev)
1389 return mgp->msg_enable; 1389 return mgp->msg_enable;
1390} 1390}
1391 1391
1392static struct ethtool_ops myri10ge_ethtool_ops = { 1392static const struct ethtool_ops myri10ge_ethtool_ops = {
1393 .get_settings = myri10ge_get_settings, 1393 .get_settings = myri10ge_get_settings,
1394 .get_drvinfo = myri10ge_get_drvinfo, 1394 .get_drvinfo = myri10ge_get_drvinfo,
1395 .get_coalesce = myri10ge_get_coalesce, 1395 .get_coalesce = myri10ge_get_coalesce,
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 51cc1e60b8c4..d7b241f7d7bc 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -647,7 +647,7 @@ static void enable_wol_mode(struct net_device *dev, int enable_intr);
647static int netdev_close(struct net_device *dev); 647static int netdev_close(struct net_device *dev);
648static int netdev_get_regs(struct net_device *dev, u8 *buf); 648static int netdev_get_regs(struct net_device *dev, u8 *buf);
649static int netdev_get_eeprom(struct net_device *dev, u8 *buf); 649static int netdev_get_eeprom(struct net_device *dev, u8 *buf);
650static struct ethtool_ops ethtool_ops; 650static const struct ethtool_ops ethtool_ops;
651 651
652static inline void __iomem *ns_ioaddr(struct net_device *dev) 652static inline void __iomem *ns_ioaddr(struct net_device *dev)
653{ 653{
@@ -2573,7 +2573,7 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom, u8
2573 return res; 2573 return res;
2574} 2574}
2575 2575
2576static struct ethtool_ops ethtool_ops = { 2576static const struct ethtool_ops ethtool_ops = {
2577 .get_drvinfo = get_drvinfo, 2577 .get_drvinfo = get_drvinfo,
2578 .get_regs_len = get_regs_len, 2578 .get_regs_len = get_regs_len,
2579 .get_eeprom_len = get_eeprom_len, 2579 .get_eeprom_len = get_eeprom_len,
diff --git a/drivers/net/ne2k-pci.c b/drivers/net/ne2k-pci.c
index 1ee7eac0f6ed..589785d1e762 100644
--- a/drivers/net/ne2k-pci.c
+++ b/drivers/net/ne2k-pci.c
@@ -175,7 +175,7 @@ static void ne2k_pci_block_input(struct net_device *dev, int count,
175 struct sk_buff *skb, int ring_offset); 175 struct sk_buff *skb, int ring_offset);
176static void ne2k_pci_block_output(struct net_device *dev, const int count, 176static void ne2k_pci_block_output(struct net_device *dev, const int count,
177 const unsigned char *buf, const int start_page); 177 const unsigned char *buf, const int start_page);
178static struct ethtool_ops ne2k_pci_ethtool_ops; 178static const struct ethtool_ops ne2k_pci_ethtool_ops;
179 179
180 180
181 181
@@ -635,7 +635,7 @@ static void ne2k_pci_get_drvinfo(struct net_device *dev,
635 strcpy(info->bus_info, pci_name(pci_dev)); 635 strcpy(info->bus_info, pci_name(pci_dev));
636} 636}
637 637
638static struct ethtool_ops ne2k_pci_ethtool_ops = { 638static const struct ethtool_ops ne2k_pci_ethtool_ops = {
639 .get_drvinfo = ne2k_pci_get_drvinfo, 639 .get_drvinfo = ne2k_pci_get_drvinfo,
640 .get_tx_csum = ethtool_op_get_tx_csum, 640 .get_tx_csum = ethtool_op_get_tx_csum,
641 .get_sg = ethtool_op_get_sg, 641 .get_sg = ethtool_op_get_sg,
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index ff76b81d5f3b..a05f6cbfdc0f 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -1273,7 +1273,7 @@ static u32 ns83820_get_link(struct net_device *ndev)
1273 return cfg & CFG_LNKSTS ? 1 : 0; 1273 return cfg & CFG_LNKSTS ? 1 : 0;
1274} 1274}
1275 1275
1276static struct ethtool_ops ops = { 1276static const struct ethtool_ops ops = {
1277 .get_drvinfo = ns83820_get_drvinfo, 1277 .get_drvinfo = ns83820_get_drvinfo,
1278 .get_link = ns83820_get_link 1278 .get_link = ns83820_get_link
1279}; 1279};
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index fab93360f017..2418cdb9d317 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -245,7 +245,7 @@ static int el3_rx(struct net_device *dev, int worklimit);
245static int el3_close(struct net_device *dev); 245static int el3_close(struct net_device *dev);
246static void el3_tx_timeout(struct net_device *dev); 246static void el3_tx_timeout(struct net_device *dev);
247static int el3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 247static int el3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
248static struct ethtool_ops netdev_ethtool_ops; 248static const struct ethtool_ops netdev_ethtool_ops;
249static void set_rx_mode(struct net_device *dev); 249static void set_rx_mode(struct net_device *dev);
250 250
251static void tc574_detach(struct pcmcia_device *p_dev); 251static void tc574_detach(struct pcmcia_device *p_dev);
@@ -1095,7 +1095,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
1095 strcpy(info->driver, "3c574_cs"); 1095 strcpy(info->driver, "3c574_cs");
1096} 1096}
1097 1097
1098static struct ethtool_ops netdev_ethtool_ops = { 1098static const struct ethtool_ops netdev_ethtool_ops = {
1099 .get_drvinfo = netdev_get_drvinfo, 1099 .get_drvinfo = netdev_get_drvinfo,
1100}; 1100};
1101 1101
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 875a0fe251e7..a0e2b01c027c 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -158,7 +158,7 @@ static int el3_rx(struct net_device *dev);
158static int el3_close(struct net_device *dev); 158static int el3_close(struct net_device *dev);
159static void el3_tx_timeout(struct net_device *dev); 159static void el3_tx_timeout(struct net_device *dev);
160static void set_multicast_list(struct net_device *dev); 160static void set_multicast_list(struct net_device *dev);
161static struct ethtool_ops netdev_ethtool_ops; 161static const struct ethtool_ops netdev_ethtool_ops;
162 162
163static void tc589_detach(struct pcmcia_device *p_dev); 163static void tc589_detach(struct pcmcia_device *p_dev);
164 164
@@ -530,7 +530,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
530} 530}
531#endif /* PCMCIA_DEBUG */ 531#endif /* PCMCIA_DEBUG */
532 532
533static struct ethtool_ops netdev_ethtool_ops = { 533static const struct ethtool_ops netdev_ethtool_ops = {
534 .get_drvinfo = netdev_get_drvinfo, 534 .get_drvinfo = netdev_get_drvinfo,
535#ifdef PCMCIA_DEBUG 535#ifdef PCMCIA_DEBUG
536 .get_msglevel = netdev_get_msglevel, 536 .get_msglevel = netdev_get_msglevel,
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index c54f6a7ebf31..a8891a9000ac 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -91,7 +91,7 @@ static void axnet_release(struct pcmcia_device *link);
91static int axnet_open(struct net_device *dev); 91static int axnet_open(struct net_device *dev);
92static int axnet_close(struct net_device *dev); 92static int axnet_close(struct net_device *dev);
93static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 93static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
94static struct ethtool_ops netdev_ethtool_ops; 94static const struct ethtool_ops netdev_ethtool_ops;
95static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs); 95static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs);
96static void ei_watchdog(u_long arg); 96static void ei_watchdog(u_long arg);
97static void axnet_reset_8390(struct net_device *dev); 97static void axnet_reset_8390(struct net_device *dev);
@@ -671,7 +671,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
671 strcpy(info->driver, "axnet_cs"); 671 strcpy(info->driver, "axnet_cs");
672} 672}
673 673
674static struct ethtool_ops netdev_ethtool_ops = { 674static const struct ethtool_ops netdev_ethtool_ops = {
675 .get_drvinfo = netdev_get_drvinfo, 675 .get_drvinfo = netdev_get_drvinfo,
676}; 676};
677 677
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 74211af0e0c9..d682f30dea6e 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -103,7 +103,7 @@ static void fjn_reset(struct net_device *dev);
103static struct net_device_stats *fjn_get_stats(struct net_device *dev); 103static struct net_device_stats *fjn_get_stats(struct net_device *dev);
104static void set_rx_mode(struct net_device *dev); 104static void set_rx_mode(struct net_device *dev);
105static void fjn_tx_timeout(struct net_device *dev); 105static void fjn_tx_timeout(struct net_device *dev);
106static struct ethtool_ops netdev_ethtool_ops; 106static const struct ethtool_ops netdev_ethtool_ops;
107 107
108/* 108/*
109 card type 109 card type
@@ -1092,7 +1092,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
1092} 1092}
1093#endif /* PCMCIA_DEBUG */ 1093#endif /* PCMCIA_DEBUG */
1094 1094
1095static struct ethtool_ops netdev_ethtool_ops = { 1095static const struct ethtool_ops netdev_ethtool_ops = {
1096 .get_drvinfo = netdev_get_drvinfo, 1096 .get_drvinfo = netdev_get_drvinfo,
1097#ifdef PCMCIA_DEBUG 1097#ifdef PCMCIA_DEBUG
1098 .get_msglevel = netdev_get_msglevel, 1098 .get_msglevel = netdev_get_msglevel,
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index b8fe70b85641..bc0ca41a0542 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -126,7 +126,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
126 strcpy(info->driver, "ibmtr_cs"); 126 strcpy(info->driver, "ibmtr_cs");
127} 127}
128 128
129static struct ethtool_ops netdev_ethtool_ops = { 129static const struct ethtool_ops netdev_ethtool_ops = {
130 .get_drvinfo = netdev_get_drvinfo, 130 .get_drvinfo = netdev_get_drvinfo,
131}; 131};
132 132
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index a8f6bfc96fd2..7d5687e94607 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -431,7 +431,7 @@ static struct net_device_stats *mace_get_stats(struct net_device *dev);
431static int mace_rx(struct net_device *dev, unsigned char RxCnt); 431static int mace_rx(struct net_device *dev, unsigned char RxCnt);
432static void restore_multicast_list(struct net_device *dev); 432static void restore_multicast_list(struct net_device *dev);
433static void set_multicast_list(struct net_device *dev); 433static void set_multicast_list(struct net_device *dev);
434static struct ethtool_ops netdev_ethtool_ops; 434static const struct ethtool_ops netdev_ethtool_ops;
435 435
436 436
437static void nmclan_detach(struct pcmcia_device *p_dev); 437static void nmclan_detach(struct pcmcia_device *p_dev);
@@ -907,7 +907,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 level)
907} 907}
908#endif /* PCMCIA_DEBUG */ 908#endif /* PCMCIA_DEBUG */
909 909
910static struct ethtool_ops netdev_ethtool_ops = { 910static const struct ethtool_ops netdev_ethtool_ops = {
911 .get_drvinfo = netdev_get_drvinfo, 911 .get_drvinfo = netdev_get_drvinfo,
912#ifdef PCMCIA_DEBUG 912#ifdef PCMCIA_DEBUG
913 .get_msglevel = netdev_get_msglevel, 913 .get_msglevel = netdev_get_msglevel,
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index cc0dcc9bf636..a09c22840f63 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -108,7 +108,7 @@ static void pcnet_release(struct pcmcia_device *link);
108static int pcnet_open(struct net_device *dev); 108static int pcnet_open(struct net_device *dev);
109static int pcnet_close(struct net_device *dev); 109static int pcnet_close(struct net_device *dev);
110static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 110static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
111static struct ethtool_ops netdev_ethtool_ops; 111static const struct ethtool_ops netdev_ethtool_ops;
112static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs); 112static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs);
113static void ei_watchdog(u_long arg); 113static void ei_watchdog(u_long arg);
114static void pcnet_reset_8390(struct net_device *dev); 114static void pcnet_reset_8390(struct net_device *dev);
@@ -1181,7 +1181,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
1181 strcpy(info->driver, "pcnet_cs"); 1181 strcpy(info->driver, "pcnet_cs");
1182} 1182}
1183 1183
1184static struct ethtool_ops netdev_ethtool_ops = { 1184static const struct ethtool_ops netdev_ethtool_ops = {
1185 .get_drvinfo = netdev_get_drvinfo, 1185 .get_drvinfo = netdev_get_drvinfo,
1186}; 1186};
1187 1187
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index 3fb369f2e7ed..a2f3a0e2a005 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -299,7 +299,7 @@ static void mdio_sync(kio_addr_t addr);
299static int mdio_read(struct net_device *dev, int phy_id, int loc); 299static int mdio_read(struct net_device *dev, int phy_id, int loc);
300static void mdio_write(struct net_device *dev, int phy_id, int loc, int value); 300static void mdio_write(struct net_device *dev, int phy_id, int loc, int value);
301static int smc_link_ok(struct net_device *dev); 301static int smc_link_ok(struct net_device *dev);
302static struct ethtool_ops ethtool_ops; 302static const struct ethtool_ops ethtool_ops;
303 303
304/*====================================================================== 304/*======================================================================
305 305
@@ -2207,7 +2207,7 @@ static int smc_nway_reset(struct net_device *dev)
2207 return -EOPNOTSUPP; 2207 return -EOPNOTSUPP;
2208} 2208}
2209 2209
2210static struct ethtool_ops ethtool_ops = { 2210static const struct ethtool_ops ethtool_ops = {
2211 .begin = check_if_running, 2211 .begin = check_if_running,
2212 .get_drvinfo = smc_get_drvinfo, 2212 .get_drvinfo = smc_get_drvinfo,
2213 .get_settings = smc_get_settings, 2213 .get_settings = smc_get_settings,
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 4122bb46f5ff..62664c01eb45 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -361,7 +361,7 @@ static int set_card_type(struct pcmcia_device *link, const void *s);
361static int do_config(struct net_device *dev, struct ifmap *map); 361static int do_config(struct net_device *dev, struct ifmap *map);
362static int do_open(struct net_device *dev); 362static int do_open(struct net_device *dev);
363static int do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 363static int do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
364static struct ethtool_ops netdev_ethtool_ops; 364static const struct ethtool_ops netdev_ethtool_ops;
365static void hardreset(struct net_device *dev); 365static void hardreset(struct net_device *dev);
366static void do_reset(struct net_device *dev, int full); 366static void do_reset(struct net_device *dev, int full);
367static int init_mii(struct net_device *dev); 367static int init_mii(struct net_device *dev);
@@ -1553,7 +1553,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
1553 sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr); 1553 sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr);
1554} 1554}
1555 1555
1556static struct ethtool_ops netdev_ethtool_ops = { 1556static const struct ethtool_ops netdev_ethtool_ops = {
1557 .get_drvinfo = netdev_get_drvinfo, 1557 .get_drvinfo = netdev_get_drvinfo,
1558}; 1558};
1559 1559
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index de05aeb734da..21dc68eff514 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -1499,7 +1499,7 @@ static void pcnet32_get_regs(struct net_device *dev, struct ethtool_regs *regs,
1499 spin_unlock_irqrestore(&lp->lock, flags); 1499 spin_unlock_irqrestore(&lp->lock, flags);
1500} 1500}
1501 1501
1502static struct ethtool_ops pcnet32_ethtool_ops = { 1502static const struct ethtool_ops pcnet32_ethtool_ops = {
1503 .get_settings = pcnet32_get_settings, 1503 .get_settings = pcnet32_get_settings,
1504 .set_settings = pcnet32_set_settings, 1504 .set_settings = pcnet32_set_settings,
1505 .get_drvinfo = pcnet32_get_drvinfo, 1505 .get_drvinfo = pcnet32_get_drvinfo,
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index c729aeeb4696..09a481a71838 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -1588,7 +1588,7 @@ static void ql_set_msglevel(struct net_device *ndev, u32 value)
1588 qdev->msg_enable = value; 1588 qdev->msg_enable = value;
1589} 1589}
1590 1590
1591static struct ethtool_ops ql3xxx_ethtool_ops = { 1591static const struct ethtool_ops ql3xxx_ethtool_ops = {
1592 .get_settings = ql_get_settings, 1592 .get_settings = ql_get_settings,
1593 .get_drvinfo = ql_get_drvinfo, 1593 .get_drvinfo = ql_get_drvinfo,
1594 .get_perm_addr = ethtool_op_get_perm_addr, 1594 .get_perm_addr = ethtool_op_get_perm_addr,
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index ebb948bbd589..c3015d68bbbe 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1124,7 +1124,7 @@ static void rtl8169_get_strings(struct net_device *dev, u32 stringset, u8 *data)
1124} 1124}
1125 1125
1126 1126
1127static struct ethtool_ops rtl8169_ethtool_ops = { 1127static const struct ethtool_ops rtl8169_ethtool_ops = {
1128 .get_drvinfo = rtl8169_get_drvinfo, 1128 .get_drvinfo = rtl8169_get_drvinfo,
1129 .get_regs_len = rtl8169_get_regs_len, 1129 .get_regs_len = rtl8169_get_regs_len,
1130 .get_link = ethtool_op_get_link, 1130 .get_link = ethtool_op_get_link,
diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index 12cde0604580..b7ff484af3e1 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -427,7 +427,7 @@ static void rionet_set_msglevel(struct net_device *ndev, u32 value)
427 rnet->msg_enable = value; 427 rnet->msg_enable = value;
428} 428}
429 429
430static struct ethtool_ops rionet_ethtool_ops = { 430static const struct ethtool_ops rionet_ethtool_ops = {
431 .get_drvinfo = rionet_get_drvinfo, 431 .get_drvinfo = rionet_get_drvinfo,
432 .get_msglevel = rionet_get_msglevel, 432 .get_msglevel = rionet_get_msglevel,
433 .set_msglevel = rionet_set_msglevel, 433 .set_msglevel = rionet_set_msglevel,
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index b93751c3d036..542059107538 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -5736,7 +5736,7 @@ static int s2io_ethtool_op_set_tso(struct net_device *dev, u32 data)
5736 return 0; 5736 return 0;
5737} 5737}
5738 5738
5739static struct ethtool_ops netdev_ethtool_ops = { 5739static const struct ethtool_ops netdev_ethtool_ops = {
5740 .get_settings = s2io_ethtool_gset, 5740 .get_settings = s2io_ethtool_gset,
5741 .set_settings = s2io_ethtool_sset, 5741 .set_settings = s2io_ethtool_sset,
5742 .get_drvinfo = s2io_ethtool_gdrvinfo, 5742 .get_drvinfo = s2io_ethtool_gdrvinfo,
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index 7142cf80d730..3afd9126a591 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -999,7 +999,7 @@ static irqreturn_t
999s2io_msix_fifo_handle(int irq, void *dev_id, struct pt_regs *regs); 999s2io_msix_fifo_handle(int irq, void *dev_id, struct pt_regs *regs);
1000static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs); 1000static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs);
1001static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag); 1001static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag);
1002static struct ethtool_ops netdev_ethtool_ops; 1002static const struct ethtool_ops netdev_ethtool_ops;
1003static void s2io_set_link(unsigned long data); 1003static void s2io_set_link(unsigned long data);
1004static int s2io_set_swapper(nic_t * sp); 1004static int s2io_set_swapper(nic_t * sp);
1005static void s2io_card_down(nic_t *nic); 1005static void s2io_card_down(nic_t *nic);
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index 7c1982af2a44..e8f26b79bbaf 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -1747,7 +1747,7 @@ static void sis190_set_msglevel(struct net_device *dev, u32 value)
1747 tp->msg_enable = value; 1747 tp->msg_enable = value;
1748} 1748}
1749 1749
1750static struct ethtool_ops sis190_ethtool_ops = { 1750static const struct ethtool_ops sis190_ethtool_ops = {
1751 .get_settings = sis190_get_settings, 1751 .get_settings = sis190_get_settings,
1752 .set_settings = sis190_set_settings, 1752 .set_settings = sis190_set_settings,
1753 .get_drvinfo = sis190_get_drvinfo, 1753 .get_drvinfo = sis190_get_drvinfo,
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 430500da6a9d..28606e20df1c 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -232,7 +232,7 @@ static void sis900_set_capability( struct net_device *net_dev ,struct mii_phy *p
232static u16 sis900_reset_phy(struct net_device *net_dev, int phy_addr); 232static u16 sis900_reset_phy(struct net_device *net_dev, int phy_addr);
233static void sis900_auto_negotiate(struct net_device *net_dev, int phy_addr); 233static void sis900_auto_negotiate(struct net_device *net_dev, int phy_addr);
234static void sis900_set_mode (long ioaddr, int speed, int duplex); 234static void sis900_set_mode (long ioaddr, int speed, int duplex);
235static struct ethtool_ops sis900_ethtool_ops; 235static const struct ethtool_ops sis900_ethtool_ops;
236 236
237/** 237/**
238 * sis900_get_mac_addr - Get MAC address for stand alone SiS900 model 238 * sis900_get_mac_addr - Get MAC address for stand alone SiS900 model
@@ -2099,7 +2099,7 @@ static void sis900_get_wol(struct net_device *net_dev, struct ethtool_wolinfo *w
2099 wol->supported = (WAKE_PHY | WAKE_MAGIC); 2099 wol->supported = (WAKE_PHY | WAKE_MAGIC);
2100} 2100}
2101 2101
2102static struct ethtool_ops sis900_ethtool_ops = { 2102static const struct ethtool_ops sis900_ethtool_ops = {
2103 .get_drvinfo = sis900_get_drvinfo, 2103 .get_drvinfo = sis900_get_drvinfo,
2104 .get_msglevel = sis900_get_msglevel, 2104 .get_msglevel = sis900_get_msglevel,
2105 .set_msglevel = sis900_set_msglevel, 2105 .set_msglevel = sis900_set_msglevel,
diff --git a/drivers/net/sk98lin/skethtool.c b/drivers/net/sk98lin/skethtool.c
index 4265ed91a9c4..e5cb5b548b88 100644
--- a/drivers/net/sk98lin/skethtool.c
+++ b/drivers/net/sk98lin/skethtool.c
@@ -581,7 +581,7 @@ static int setRxCsum(struct net_device *dev, u32 data)
581 return 0; 581 return 0;
582} 582}
583 583
584struct ethtool_ops SkGeEthtoolOps = { 584const struct ethtool_ops SkGeEthtoolOps = {
585 .get_settings = getSettings, 585 .get_settings = getSettings,
586 .set_settings = setSettings, 586 .set_settings = setSettings,
587 .get_drvinfo = getDriverInfo, 587 .get_drvinfo = getDriverInfo,
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c
index 49e76c7f10da..0ecfc14e7990 100644
--- a/drivers/net/sk98lin/skge.c
+++ b/drivers/net/sk98lin/skge.c
@@ -248,7 +248,7 @@ static void DumpLong(char*, int);
248 248
249/* global variables *********************************************************/ 249/* global variables *********************************************************/
250static SK_BOOL DoPrintInterfaceChange = SK_TRUE; 250static SK_BOOL DoPrintInterfaceChange = SK_TRUE;
251extern struct ethtool_ops SkGeEthtoolOps; 251extern const struct ethtool_ops SkGeEthtoolOps;
252 252
253/* local variables **********************************************************/ 253/* local variables **********************************************************/
254static uintptr_t TxQueueAddr[SK_MAX_MACS][2] = {{0x680, 0x600},{0x780, 0x700}}; 254static uintptr_t TxQueueAddr[SK_MAX_MACS][2] = {{0x680, 0x600},{0x780, 0x700}};
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index fba8b7455d8b..4b267b85fff2 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -691,7 +691,7 @@ static int skge_phys_id(struct net_device *dev, u32 data)
691 return 0; 691 return 0;
692} 692}
693 693
694static struct ethtool_ops skge_ethtool_ops = { 694static const struct ethtool_ops skge_ethtool_ops = {
695 .get_settings = skge_get_settings, 695 .get_settings = skge_get_settings,
696 .set_settings = skge_set_settings, 696 .set_settings = skge_set_settings,
697 .get_drvinfo = skge_get_drvinfo, 697 .get_drvinfo = skge_get_drvinfo,
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 9429859be54f..c4c51f1418f5 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -3033,7 +3033,7 @@ static void sky2_get_regs(struct net_device *dev, struct ethtool_regs *regs,
3033 regs->len - B3_RI_WTO_R1); 3033 regs->len - B3_RI_WTO_R1);
3034} 3034}
3035 3035
3036static struct ethtool_ops sky2_ethtool_ops = { 3036static const struct ethtool_ops sky2_ethtool_ops = {
3037 .get_settings = sky2_get_settings, 3037 .get_settings = sky2_get_settings,
3038 .set_settings = sky2_set_settings, 3038 .set_settings = sky2_set_settings,
3039 .get_drvinfo = sky2_get_drvinfo, 3039 .get_drvinfo = sky2_get_drvinfo,
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 4438fe8c9499..a621b17456e5 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -1821,7 +1821,7 @@ static int smc911x_ethtool_geteeprom_len(struct net_device *dev)
1821 return SMC911X_EEPROM_LEN; 1821 return SMC911X_EEPROM_LEN;
1822} 1822}
1823 1823
1824static struct ethtool_ops smc911x_ethtool_ops = { 1824static const struct ethtool_ops smc911x_ethtool_ops = {
1825 .get_settings = smc911x_ethtool_getsettings, 1825 .get_settings = smc911x_ethtool_getsettings,
1826 .set_settings = smc911x_ethtool_setsettings, 1826 .set_settings = smc911x_ethtool_setsettings,
1827 .get_drvinfo = smc911x_ethtool_getdrvinfo, 1827 .get_drvinfo = smc911x_ethtool_getdrvinfo,
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 4edfa7fc483a..d7e56438b5d6 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -1739,7 +1739,7 @@ static void smc_ethtool_setmsglevel(struct net_device *dev, u32 level)
1739 lp->msg_enable = level; 1739 lp->msg_enable = level;
1740} 1740}
1741 1741
1742static struct ethtool_ops smc_ethtool_ops = { 1742static const struct ethtool_ops smc_ethtool_ops = {
1743 .get_settings = smc_ethtool_getsettings, 1743 .get_settings = smc_ethtool_getsettings,
1744 .set_settings = smc_ethtool_setsettings, 1744 .set_settings = smc_ethtool_setsettings,
1745 .get_drvinfo = smc_ethtool_getdrvinfo, 1745 .get_drvinfo = smc_ethtool_getdrvinfo,
diff --git a/drivers/net/spider_net.h b/drivers/net/spider_net.h
index 30407cdf0892..2e80882b345a 100644
--- a/drivers/net/spider_net.h
+++ b/drivers/net/spider_net.h
@@ -29,7 +29,7 @@
29extern int spider_net_stop(struct net_device *netdev); 29extern int spider_net_stop(struct net_device *netdev);
30extern int spider_net_open(struct net_device *netdev); 30extern int spider_net_open(struct net_device *netdev);
31 31
32extern struct ethtool_ops spider_net_ethtool_ops; 32extern const struct ethtool_ops spider_net_ethtool_ops;
33 33
34extern char spider_net_driver_name[]; 34extern char spider_net_driver_name[];
35 35
diff --git a/drivers/net/spider_net_ethtool.c b/drivers/net/spider_net_ethtool.c
index 02209222b8c9..b0e65d0e0645 100644
--- a/drivers/net/spider_net_ethtool.c
+++ b/drivers/net/spider_net_ethtool.c
@@ -142,7 +142,7 @@ spider_net_ethtool_get_ringparam(struct net_device *netdev,
142 ering->rx_pending = card->rx_desc; 142 ering->rx_pending = card->rx_desc;
143} 143}
144 144
145struct ethtool_ops spider_net_ethtool_ops = { 145const struct ethtool_ops spider_net_ethtool_ops = {
146 .get_settings = spider_net_ethtool_get_settings, 146 .get_settings = spider_net_ethtool_get_settings,
147 .get_drvinfo = spider_net_ethtool_get_drvinfo, 147 .get_drvinfo = spider_net_ethtool_get_drvinfo,
148 .get_wol = spider_net_ethtool_get_wol, 148 .get_wol = spider_net_ethtool_get_wol,
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 525b098a3254..337c3b7ac90e 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -642,7 +642,7 @@ static struct net_device_stats *get_stats(struct net_device *dev);
642static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 642static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
643static int netdev_close(struct net_device *dev); 643static int netdev_close(struct net_device *dev);
644static void netdev_media_change(struct net_device *dev); 644static void netdev_media_change(struct net_device *dev);
645static struct ethtool_ops ethtool_ops; 645static const struct ethtool_ops ethtool_ops;
646 646
647 647
648#ifdef VLAN_SUPPORT 648#ifdef VLAN_SUPPORT
@@ -1868,7 +1868,7 @@ static void set_msglevel(struct net_device *dev, u32 val)
1868 debug = val; 1868 debug = val;
1869} 1869}
1870 1870
1871static struct ethtool_ops ethtool_ops = { 1871static const struct ethtool_ops ethtool_ops = {
1872 .begin = check_if_running, 1872 .begin = check_if_running,
1873 .get_drvinfo = get_drvinfo, 1873 .get_drvinfo = get_drvinfo,
1874 .get_settings = get_settings, 1874 .get_settings = get_settings,
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index d46891510767..9e4be86495a0 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -1071,7 +1071,7 @@ static u32 bigmac_get_link(struct net_device *dev)
1071 return (bp->sw_bmsr & BMSR_LSTATUS); 1071 return (bp->sw_bmsr & BMSR_LSTATUS);
1072} 1072}
1073 1073
1074static struct ethtool_ops bigmac_ethtool_ops = { 1074static const struct ethtool_ops bigmac_ethtool_ops = {
1075 .get_drvinfo = bigmac_get_drvinfo, 1075 .get_drvinfo = bigmac_get_drvinfo,
1076 .get_link = bigmac_get_link, 1076 .get_link = bigmac_get_link,
1077}; 1077};
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index f64a28513ba2..6b8f4baf87fd 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -431,7 +431,7 @@ static int __set_mac_addr(struct net_device *dev);
431static struct net_device_stats *get_stats(struct net_device *dev); 431static struct net_device_stats *get_stats(struct net_device *dev);
432static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 432static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
433static int netdev_close(struct net_device *dev); 433static int netdev_close(struct net_device *dev);
434static struct ethtool_ops ethtool_ops; 434static const struct ethtool_ops ethtool_ops;
435 435
436static void sundance_reset(struct net_device *dev, unsigned long reset_cmd) 436static void sundance_reset(struct net_device *dev, unsigned long reset_cmd)
437{ 437{
@@ -1569,7 +1569,7 @@ static void set_msglevel(struct net_device *dev, u32 val)
1569 np->msg_enable = val; 1569 np->msg_enable = val;
1570} 1570}
1571 1571
1572static struct ethtool_ops ethtool_ops = { 1572static const struct ethtool_ops ethtool_ops = {
1573 .begin = check_if_running, 1573 .begin = check_if_running,
1574 .get_drvinfo = get_drvinfo, 1574 .get_drvinfo = get_drvinfo,
1575 .get_settings = get_settings, 1575 .get_settings = get_settings,
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index eb8a47605837..e567d0ae77ee 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -2753,7 +2753,7 @@ static int gem_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
2753 return 0; 2753 return 0;
2754} 2754}
2755 2755
2756static struct ethtool_ops gem_ethtool_ops = { 2756static const struct ethtool_ops gem_ethtool_ops = {
2757 .get_drvinfo = gem_get_drvinfo, 2757 .get_drvinfo = gem_get_drvinfo,
2758 .get_link = ethtool_op_get_link, 2758 .get_link = ethtool_op_get_link,
2759 .get_settings = gem_get_settings, 2759 .get_settings = gem_get_settings,
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 6779ac1f904a..2ff0ded24000 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2512,7 +2512,7 @@ static u32 hme_get_link(struct net_device *dev)
2512 return (hp->sw_bmsr & BMSR_LSTATUS); 2512 return (hp->sw_bmsr & BMSR_LSTATUS);
2513} 2513}
2514 2514
2515static struct ethtool_ops hme_ethtool_ops = { 2515static const struct ethtool_ops hme_ethtool_ops = {
2516 .get_settings = hme_get_settings, 2516 .get_settings = hme_get_settings,
2517 .set_settings = hme_set_settings, 2517 .set_settings = hme_set_settings,
2518 .get_drvinfo = hme_get_drvinfo, 2518 .get_drvinfo = hme_get_drvinfo,
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index e4c8576454d7..77670741e101 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -1318,7 +1318,7 @@ static u32 sparc_lance_get_link(struct net_device *dev)
1318 return 1; 1318 return 1;
1319} 1319}
1320 1320
1321static struct ethtool_ops sparc_lance_ethtool_ops = { 1321static const struct ethtool_ops sparc_lance_ethtool_ops = {
1322 .get_drvinfo = sparc_lance_get_drvinfo, 1322 .get_drvinfo = sparc_lance_get_drvinfo,
1323 .get_link = sparc_lance_get_link, 1323 .get_link = sparc_lance_get_link,
1324}; 1324};
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index d5c1448d587c..9202a1c369dd 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -718,7 +718,7 @@ static u32 qe_get_link(struct net_device *dev)
718 return (phyconfig & MREGS_PHYCONFIG_LSTAT); 718 return (phyconfig & MREGS_PHYCONFIG_LSTAT);
719} 719}
720 720
721static struct ethtool_ops qe_ethtool_ops = { 721static const struct ethtool_ops qe_ethtool_ops = {
722 .get_drvinfo = qe_get_drvinfo, 722 .get_drvinfo = qe_get_drvinfo,
723 .get_link = qe_get_link, 723 .get_link = qe_get_link,
724}; 724};
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 4d66d86e41ea..3b84ac234644 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -8962,7 +8962,7 @@ static int tg3_set_coalesce(struct net_device *dev, struct ethtool_coalesce *ec)
8962 return 0; 8962 return 0;
8963} 8963}
8964 8964
8965static struct ethtool_ops tg3_ethtool_ops = { 8965static const struct ethtool_ops tg3_ethtool_ops = {
8966 .get_settings = tg3_get_settings, 8966 .get_settings = tg3_get_settings,
8967 .set_settings = tg3_set_settings, 8967 .set_settings = tg3_set_settings,
8968 .get_drvinfo = tg3_get_drvinfo, 8968 .get_drvinfo = tg3_get_drvinfo,
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index 17a2ebaef58c..e1b48bd86646 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -1670,7 +1670,7 @@ static void de_get_regs(struct net_device *dev, struct ethtool_regs *regs,
1670 spin_unlock_irq(&de->lock); 1670 spin_unlock_irq(&de->lock);
1671} 1671}
1672 1672
1673static struct ethtool_ops de_ethtool_ops = { 1673static const struct ethtool_ops de_ethtool_ops = {
1674 .get_link = ethtool_op_get_link, 1674 .get_link = ethtool_op_get_link,
1675 .get_tx_csum = ethtool_op_get_tx_csum, 1675 .get_tx_csum = ethtool_op_get_tx_csum,
1676 .get_sg = ethtool_op_get_sg, 1676 .get_sg = ethtool_op_get_sg,
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index 66dade556821..ccf2c225f084 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -298,7 +298,7 @@ static int dmfe_start_xmit(struct sk_buff *, struct DEVICE *);
298static int dmfe_stop(struct DEVICE *); 298static int dmfe_stop(struct DEVICE *);
299static struct net_device_stats * dmfe_get_stats(struct DEVICE *); 299static struct net_device_stats * dmfe_get_stats(struct DEVICE *);
300static void dmfe_set_filter_mode(struct DEVICE *); 300static void dmfe_set_filter_mode(struct DEVICE *);
301static struct ethtool_ops netdev_ethtool_ops; 301static const struct ethtool_ops netdev_ethtool_ops;
302static u16 read_srom_word(long ,int); 302static u16 read_srom_word(long ,int);
303static irqreturn_t dmfe_interrupt(int , void *, struct pt_regs *); 303static irqreturn_t dmfe_interrupt(int , void *, struct pt_regs *);
304#ifdef CONFIG_NET_POLL_CONTROLLER 304#ifdef CONFIG_NET_POLL_CONTROLLER
@@ -1048,7 +1048,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
1048 dev->base_addr, dev->irq); 1048 dev->base_addr, dev->irq);
1049} 1049}
1050 1050
1051static struct ethtool_ops netdev_ethtool_ops = { 1051static const struct ethtool_ops netdev_ethtool_ops = {
1052 .get_drvinfo = netdev_get_drvinfo, 1052 .get_drvinfo = netdev_get_drvinfo,
1053}; 1053};
1054 1054
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index 0a339dff014e..831919a81918 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -837,7 +837,7 @@ static void tulip_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *in
837 strcpy(info->bus_info, pci_name(np->pdev)); 837 strcpy(info->bus_info, pci_name(np->pdev));
838} 838}
839 839
840static struct ethtool_ops ops = { 840static const struct ethtool_ops ops = {
841 .get_drvinfo = tulip_get_drvinfo 841 .get_drvinfo = tulip_get_drvinfo
842}; 842};
843 843
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c
index c4c720e2d4c3..0b176be51eb3 100644
--- a/drivers/net/tulip/uli526x.c
+++ b/drivers/net/tulip/uli526x.c
@@ -222,7 +222,7 @@ static int uli526x_start_xmit(struct sk_buff *, struct net_device *);
222static int uli526x_stop(struct net_device *); 222static int uli526x_stop(struct net_device *);
223static struct net_device_stats * uli526x_get_stats(struct net_device *); 223static struct net_device_stats * uli526x_get_stats(struct net_device *);
224static void uli526x_set_filter_mode(struct net_device *); 224static void uli526x_set_filter_mode(struct net_device *);
225static struct ethtool_ops netdev_ethtool_ops; 225static const struct ethtool_ops netdev_ethtool_ops;
226static u16 read_srom_word(long, int); 226static u16 read_srom_word(long, int);
227static irqreturn_t uli526x_interrupt(int, void *, struct pt_regs *); 227static irqreturn_t uli526x_interrupt(int, void *, struct pt_regs *);
228static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long); 228static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long);
@@ -985,7 +985,7 @@ static void uli526x_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
985 wol->wolopts = 0; 985 wol->wolopts = 0;
986} 986}
987 987
988static struct ethtool_ops netdev_ethtool_ops = { 988static const struct ethtool_ops netdev_ethtool_ops = {
989 .get_drvinfo = netdev_get_drvinfo, 989 .get_drvinfo = netdev_get_drvinfo,
990 .get_settings = netdev_get_settings, 990 .get_settings = netdev_get_settings,
991 .get_link = netdev_get_link, 991 .get_link = netdev_get_link,
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
index 264723b592cf..2fca1ee24f5a 100644
--- a/drivers/net/tulip/winbond-840.c
+++ b/drivers/net/tulip/winbond-840.c
@@ -339,7 +339,7 @@ static u32 __set_rx_mode(struct net_device *dev);
339static void set_rx_mode(struct net_device *dev); 339static void set_rx_mode(struct net_device *dev);
340static struct net_device_stats *get_stats(struct net_device *dev); 340static struct net_device_stats *get_stats(struct net_device *dev);
341static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 341static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
342static struct ethtool_ops netdev_ethtool_ops; 342static const struct ethtool_ops netdev_ethtool_ops;
343static int netdev_close(struct net_device *dev); 343static int netdev_close(struct net_device *dev);
344 344
345 345
@@ -1447,7 +1447,7 @@ static void netdev_set_msglevel(struct net_device *dev, u32 value)
1447 debug = value; 1447 debug = value;
1448} 1448}
1449 1449
1450static struct ethtool_ops netdev_ethtool_ops = { 1450static const struct ethtool_ops netdev_ethtool_ops = {
1451 .get_drvinfo = netdev_get_drvinfo, 1451 .get_drvinfo = netdev_get_drvinfo,
1452 .get_settings = netdev_get_settings, 1452 .get_settings = netdev_get_settings,
1453 .set_settings = netdev_set_settings, 1453 .set_settings = netdev_set_settings,
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index cf43390d2c80..629eac645289 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -190,7 +190,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
190 strcpy(info->bus_info, pci_name(private->pdev)); 190 strcpy(info->bus_info, pci_name(private->pdev));
191} 191}
192 192
193static struct ethtool_ops netdev_ethtool_ops = { 193static const struct ethtool_ops netdev_ethtool_ops = {
194 .get_drvinfo = netdev_get_drvinfo, 194 .get_drvinfo = netdev_get_drvinfo,
195}; 195};
196 196
diff --git a/drivers/net/tulip/xircom_tulip_cb.c b/drivers/net/tulip/xircom_tulip_cb.c
index d797b7b2e35f..312788caa4c6 100644
--- a/drivers/net/tulip/xircom_tulip_cb.c
+++ b/drivers/net/tulip/xircom_tulip_cb.c
@@ -334,7 +334,7 @@ static struct net_device_stats *xircom_get_stats(struct net_device *dev);
334static int xircom_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 334static int xircom_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
335static void set_rx_mode(struct net_device *dev); 335static void set_rx_mode(struct net_device *dev);
336static void check_duplex(struct net_device *dev); 336static void check_duplex(struct net_device *dev);
337static struct ethtool_ops ops; 337static const struct ethtool_ops ops;
338 338
339 339
340/* The Xircom cards are picky about when certain bits in CSR6 can be 340/* The Xircom cards are picky about when certain bits in CSR6 can be
@@ -1430,7 +1430,7 @@ static void xircom_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *i
1430 strcpy(info->bus_info, pci_name(tp->pdev)); 1430 strcpy(info->bus_info, pci_name(tp->pdev));
1431} 1431}
1432 1432
1433static struct ethtool_ops ops = { 1433static const struct ethtool_ops ops = {
1434 .get_settings = xircom_get_settings, 1434 .get_settings = xircom_get_settings,
1435 .set_settings = xircom_set_settings, 1435 .set_settings = xircom_set_settings,
1436 .get_drvinfo = xircom_get_drvinfo, 1436 .get_drvinfo = xircom_get_drvinfo,
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 20db30891db0..de8da6dee1b0 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -69,7 +69,7 @@ static int debug;
69/* Network device part of the driver */ 69/* Network device part of the driver */
70 70
71static LIST_HEAD(tun_dev_list); 71static LIST_HEAD(tun_dev_list);
72static struct ethtool_ops tun_ethtool_ops; 72static const struct ethtool_ops tun_ethtool_ops;
73 73
74/* Net device open. */ 74/* Net device open. */
75static int tun_net_open(struct net_device *dev) 75static int tun_net_open(struct net_device *dev)
@@ -856,7 +856,7 @@ static int tun_set_rx_csum(struct net_device *dev, u32 data)
856 return 0; 856 return 0;
857} 857}
858 858
859static struct ethtool_ops tun_ethtool_ops = { 859static const struct ethtool_ops tun_ethtool_ops = {
860 .get_settings = tun_get_settings, 860 .get_settings = tun_get_settings,
861 .get_drvinfo = tun_get_drvinfo, 861 .get_drvinfo = tun_get_drvinfo,
862 .get_msglevel = tun_get_msglevel, 862 .get_msglevel = tun_get_msglevel,
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 03107310ea7b..2fb4f978ed54 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1241,7 +1241,7 @@ typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
1241 ering->tx_pending = TXLO_ENTRIES - 1; 1241 ering->tx_pending = TXLO_ENTRIES - 1;
1242} 1242}
1243 1243
1244static struct ethtool_ops typhoon_ethtool_ops = { 1244static const struct ethtool_ops typhoon_ethtool_ops = {
1245 .get_settings = typhoon_get_settings, 1245 .get_settings = typhoon_get_settings,
1246 .set_settings = typhoon_set_settings, 1246 .set_settings = typhoon_set_settings,
1247 .get_drvinfo = typhoon_get_drvinfo, 1247 .get_drvinfo = typhoon_get_drvinfo,
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 4e188f4289b4..700ebd7d1457 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -4129,20 +4129,7 @@ static int ucc_geth_close(struct net_device *dev)
4129 return 0; 4129 return 0;
4130} 4130}
4131 4131
4132struct ethtool_ops ucc_geth_ethtool_ops = { 4132const struct ethtool_ops ucc_geth_ethtool_ops = { };
4133 .get_settings = NULL,
4134 .get_drvinfo = NULL,
4135 .get_regs_len = NULL,
4136 .get_regs = NULL,
4137 .get_link = NULL,
4138 .get_coalesce = NULL,
4139 .set_coalesce = NULL,
4140 .get_ringparam = NULL,
4141 .set_ringparam = NULL,
4142 .get_strings = NULL,
4143 .get_stats_count = NULL,
4144 .get_ethtool_stats = NULL,
4145};
4146 4133
4147static int ucc_geth_probe(struct device *device) 4134static int ucc_geth_probe(struct device *device)
4148{ 4135{
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index f7bc44f2d96a..acd0a91a09c3 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -411,7 +411,7 @@ static void rhine_error(struct net_device *dev, int intr_status);
411static void rhine_set_rx_mode(struct net_device *dev); 411static void rhine_set_rx_mode(struct net_device *dev);
412static struct net_device_stats *rhine_get_stats(struct net_device *dev); 412static struct net_device_stats *rhine_get_stats(struct net_device *dev);
413static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 413static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
414static struct ethtool_ops netdev_ethtool_ops; 414static const struct ethtool_ops netdev_ethtool_ops;
415static int rhine_close(struct net_device *dev); 415static int rhine_close(struct net_device *dev);
416static void rhine_shutdown (struct pci_dev *pdev); 416static void rhine_shutdown (struct pci_dev *pdev);
417 417
@@ -1796,7 +1796,7 @@ static int rhine_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
1796 return 0; 1796 return 0;
1797} 1797}
1798 1798
1799static struct ethtool_ops netdev_ethtool_ops = { 1799static const struct ethtool_ops netdev_ethtool_ops = {
1800 .get_drvinfo = netdev_get_drvinfo, 1800 .get_drvinfo = netdev_get_drvinfo,
1801 .get_settings = netdev_get_settings, 1801 .get_settings = netdev_get_settings,
1802 .set_settings = netdev_set_settings, 1802 .set_settings = netdev_set_settings,
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index a0f7820cb54b..dd472b64e5a2 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -86,7 +86,7 @@ static int msglevel = MSG_LEVEL_INFO;
86 86
87 87
88static int velocity_mii_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); 88static int velocity_mii_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
89static struct ethtool_ops velocity_ethtool_ops; 89static const struct ethtool_ops velocity_ethtool_ops;
90 90
91/* 91/*
92 Define module options 92 Define module options
@@ -2971,7 +2971,7 @@ static void velocity_set_msglevel(struct net_device *dev, u32 value)
2971 msglevel = value; 2971 msglevel = value;
2972} 2972}
2973 2973
2974static struct ethtool_ops velocity_ethtool_ops = { 2974static const struct ethtool_ops velocity_ethtool_ops = {
2975 .get_settings = velocity_get_settings, 2975 .get_settings = velocity_get_settings,
2976 .set_settings = velocity_set_settings, 2976 .set_settings = velocity_set_settings,
2977 .get_drvinfo = velocity_get_drvinfo, 2977 .get_drvinfo = velocity_get_drvinfo,
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.c b/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.c
index e386dcc32e8c..c947025d655f 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.c
@@ -44,7 +44,7 @@ static void bcm43xx_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *
44 strncpy(info->bus_info, pci_name(bcm->pci_dev), ETHTOOL_BUSINFO_LEN); 44 strncpy(info->bus_info, pci_name(bcm->pci_dev), ETHTOOL_BUSINFO_LEN);
45} 45}
46 46
47struct ethtool_ops bcm43xx_ethtool_ops = { 47const struct ethtool_ops bcm43xx_ethtool_ops = {
48 .get_drvinfo = bcm43xx_get_drvinfo, 48 .get_drvinfo = bcm43xx_get_drvinfo,
49 .get_link = ethtool_op_get_link, 49 .get_link = ethtool_op_get_link,
50}; 50};
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.h b/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.h
index 813704991f62..6f8d42d3cdf5 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.h
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_ethtool.h
@@ -3,6 +3,6 @@
3 3
4#include <linux/ethtool.h> 4#include <linux/ethtool.h>
5 5
6extern struct ethtool_ops bcm43xx_ethtool_ops; 6extern const struct ethtool_ops bcm43xx_ethtool_ops;
7 7
8#endif /* BCM43xx_ETHTOOL_H_ */ 8#endif /* BCM43xx_ETHTOOL_H_ */
diff --git a/drivers/net/wireless/hostap/hostap.h b/drivers/net/wireless/hostap/hostap.h
index 5e63765219fe..e663518bd570 100644
--- a/drivers/net/wireless/hostap/hostap.h
+++ b/drivers/net/wireless/hostap/hostap.h
@@ -86,7 +86,7 @@ void hostap_info_process(local_info_t *local, struct sk_buff *skb);
86/* hostap_ioctl.c */ 86/* hostap_ioctl.c */
87 87
88extern const struct iw_handler_def hostap_iw_handler_def; 88extern const struct iw_handler_def hostap_iw_handler_def;
89extern struct ethtool_ops prism2_ethtool_ops; 89extern const struct ethtool_ops prism2_ethtool_ops;
90 90
91int hostap_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); 91int hostap_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
92 92
diff --git a/drivers/net/wireless/hostap/hostap_ioctl.c b/drivers/net/wireless/hostap/hostap_ioctl.c
index 8399de581893..7a4978516eac 100644
--- a/drivers/net/wireless/hostap/hostap_ioctl.c
+++ b/drivers/net/wireless/hostap/hostap_ioctl.c
@@ -3908,7 +3908,7 @@ static void prism2_get_drvinfo(struct net_device *dev,
3908 local->sta_fw_ver & 0xff); 3908 local->sta_fw_ver & 0xff);
3909} 3909}
3910 3910
3911struct ethtool_ops prism2_ethtool_ops = { 3911const struct ethtool_ops prism2_ethtool_ops = {
3912 .get_drvinfo = prism2_get_drvinfo 3912 .get_drvinfo = prism2_get_drvinfo
3913}; 3913};
3914 3914
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index d2db8eb412c1..b4d81a04c895 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -5911,7 +5911,7 @@ static u32 ipw2100_ethtool_get_link(struct net_device *dev)
5911 return (priv->status & STATUS_ASSOCIATED) ? 1 : 0; 5911 return (priv->status & STATUS_ASSOCIATED) ? 1 : 0;
5912} 5912}
5913 5913
5914static struct ethtool_ops ipw2100_ethtool_ops = { 5914static const struct ethtool_ops ipw2100_ethtool_ops = {
5915 .get_link = ipw2100_ethtool_get_link, 5915 .get_link = ipw2100_ethtool_get_link,
5916 .get_drvinfo = ipw_ethtool_get_drvinfo, 5916 .get_drvinfo = ipw_ethtool_get_drvinfo,
5917}; 5917};
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index f29ec0ebed2f..7358664e0908 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -10461,7 +10461,7 @@ static int ipw_ethtool_set_eeprom(struct net_device *dev,
10461 return 0; 10461 return 0;
10462} 10462}
10463 10463
10464static struct ethtool_ops ipw_ethtool_ops = { 10464static const struct ethtool_ops ipw_ethtool_ops = {
10465 .get_link = ipw_ethtool_get_link, 10465 .get_link = ipw_ethtool_get_link,
10466 .get_drvinfo = ipw_ethtool_get_drvinfo, 10466 .get_drvinfo = ipw_ethtool_get_drvinfo,
10467 .get_eeprom_len = ipw_ethtool_get_eeprom_len, 10467 .get_eeprom_len = ipw_ethtool_get_eeprom_len,
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 1174ff53e025..1840b69e3cb5 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -165,7 +165,7 @@ static const u8 encaps_hdr[] = {0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00};
165#define MAX_RID_LEN 1024 165#define MAX_RID_LEN 1024
166 166
167static const struct iw_handler_def orinoco_handler_def; 167static const struct iw_handler_def orinoco_handler_def;
168static struct ethtool_ops orinoco_ethtool_ops; 168static const struct ethtool_ops orinoco_ethtool_ops;
169 169
170/********************************************************************/ 170/********************************************************************/
171/* Data tables */ 171/* Data tables */
@@ -4293,7 +4293,7 @@ static void orinoco_get_drvinfo(struct net_device *dev,
4293 "PCMCIA %p", priv->hw.iobase); 4293 "PCMCIA %p", priv->hw.iobase);
4294} 4294}
4295 4295
4296static struct ethtool_ops orinoco_ethtool_ops = { 4296static const struct ethtool_ops orinoco_ethtool_ops = {
4297 .get_drvinfo = orinoco_get_drvinfo, 4297 .get_drvinfo = orinoco_get_drvinfo,
4298 .get_link = ethtool_op_get_link, 4298 .get_link = ethtool_op_get_link,
4299}; 4299};
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 8e112d139e29..4574290f971f 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -99,7 +99,7 @@ static int ray_dev_config(struct net_device *dev, struct ifmap *map);
99static struct net_device_stats *ray_get_stats(struct net_device *dev); 99static struct net_device_stats *ray_get_stats(struct net_device *dev);
100static int ray_dev_init(struct net_device *dev); 100static int ray_dev_init(struct net_device *dev);
101 101
102static struct ethtool_ops netdev_ethtool_ops; 102static const struct ethtool_ops netdev_ethtool_ops;
103 103
104static int ray_open(struct net_device *dev); 104static int ray_open(struct net_device *dev);
105static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev); 105static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev);
@@ -1092,7 +1092,7 @@ static void netdev_get_drvinfo(struct net_device *dev,
1092 strcpy(info->driver, "ray_cs"); 1092 strcpy(info->driver, "ray_cs");
1093} 1093}
1094 1094
1095static struct ethtool_ops netdev_ethtool_ops = { 1095static const struct ethtool_ops netdev_ethtool_ops = {
1096 .get_drvinfo = netdev_get_drvinfo, 1096 .get_drvinfo = netdev_get_drvinfo,
1097}; 1097};
1098 1098
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 561250f73fd3..0065f057bb1c 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -1837,7 +1837,7 @@ static void wl_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
1837 strncpy(info->driver, "wavelan_cs", sizeof(info->driver)-1); 1837 strncpy(info->driver, "wavelan_cs", sizeof(info->driver)-1);
1838} 1838}
1839 1839
1840static struct ethtool_ops ops = { 1840static const struct ethtool_ops ops = {
1841 .get_drvinfo = wl_get_drvinfo 1841 .get_drvinfo = wl_get_drvinfo
1842}; 1842};
1843 1843
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index c03e400facee..e0d294c12970 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1464,7 +1464,7 @@ static void wl3501_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *i
1464 strlcpy(info->driver, wl3501_dev_info, sizeof(info->driver)); 1464 strlcpy(info->driver, wl3501_dev_info, sizeof(info->driver));
1465} 1465}
1466 1466
1467static struct ethtool_ops ops = { 1467static const struct ethtool_ops ops = {
1468 .get_drvinfo = wl3501_get_drvinfo 1468 .get_drvinfo = wl3501_get_drvinfo
1469}; 1469};
1470 1470
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index de11246b99ee..a4c4953f1365 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -356,7 +356,7 @@ static void yellowfin_error(struct net_device *dev, int intr_status);
356static int yellowfin_close(struct net_device *dev); 356static int yellowfin_close(struct net_device *dev);
357static struct net_device_stats *yellowfin_get_stats(struct net_device *dev); 357static struct net_device_stats *yellowfin_get_stats(struct net_device *dev);
358static void set_rx_mode(struct net_device *dev); 358static void set_rx_mode(struct net_device *dev);
359static struct ethtool_ops ethtool_ops; 359static const struct ethtool_ops ethtool_ops;
360 360
361 361
362static int __devinit yellowfin_init_one(struct pci_dev *pdev, 362static int __devinit yellowfin_init_one(struct pci_dev *pdev,
@@ -1352,7 +1352,7 @@ static void yellowfin_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo
1352 strcpy(info->bus_info, pci_name(np->pci_dev)); 1352 strcpy(info->bus_info, pci_name(np->pci_dev));
1353} 1353}
1354 1354
1355static struct ethtool_ops ethtool_ops = { 1355static const struct ethtool_ops ethtool_ops = {
1356 .get_drvinfo = yellowfin_get_drvinfo 1356 .get_drvinfo = yellowfin_get_drvinfo
1357}; 1357};
1358 1358