diff options
| -rw-r--r-- | drivers/net/3c59x.c | 1 | ||||
| -rw-r--r-- | drivers/net/8139cp.c | 1 | ||||
| -rw-r--r-- | drivers/net/8139too.c | 1 | ||||
| -rw-r--r-- | drivers/net/ax88796.c | 1 | ||||
| -rw-r--r-- | drivers/net/b44.c | 1 | ||||
| -rw-r--r-- | drivers/net/bnx2.c | 1 | ||||
| -rw-r--r-- | drivers/net/cxgb3/cxgb3_main.c | 1 | ||||
| -rw-r--r-- | drivers/net/e100.c | 1 | ||||
| -rw-r--r-- | drivers/net/e1000/e1000_ethtool.c | 1 | ||||
| -rw-r--r-- | drivers/net/forcedeth.c | 1 | ||||
| -rw-r--r-- | drivers/net/ixgb/ixgb_ethtool.c | 1 | ||||
| -rw-r--r-- | drivers/net/ne2k-pci.c | 1 | ||||
| -rw-r--r-- | drivers/net/netxen/netxen_nic_ethtool.c | 1 | ||||
| -rw-r--r-- | drivers/net/pcnet32.c | 1 | ||||
| -rwxr-xr-x | drivers/net/qla3xxx.c | 1 | ||||
| -rw-r--r-- | drivers/net/r8169.c | 1 | ||||
| -rw-r--r-- | drivers/net/sc92031.c | 1 | ||||
| -rw-r--r-- | drivers/net/skge.c | 1 | ||||
| -rw-r--r-- | drivers/net/sky2.c | 1 | ||||
| -rw-r--r-- | drivers/net/sundance.c | 1 | ||||
| -rw-r--r-- | drivers/net/sunvnet.c | 1 | ||||
| -rw-r--r-- | drivers/net/tc35815.c | 1 | ||||
| -rw-r--r-- | drivers/net/tg3.c | 1 | ||||
| -rw-r--r-- | drivers/net/via-rhine.c | 1 | ||||
| -rw-r--r-- | include/linux/ethtool.h | 4 | ||||
| -rw-r--r-- | net/core/ethtool.c | 43 |
26 files changed, 8 insertions, 63 deletions
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 6deb20fc7a08..001c66dd3a94 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c | |||
| @@ -2886,7 +2886,6 @@ static const struct ethtool_ops vortex_ethtool_ops = { | |||
| 2886 | .set_settings = vortex_set_settings, | 2886 | .set_settings = vortex_set_settings, |
| 2887 | .get_link = ethtool_op_get_link, | 2887 | .get_link = ethtool_op_get_link, |
| 2888 | .nway_reset = vortex_nway_reset, | 2888 | .nway_reset = vortex_nway_reset, |
| 2889 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 2890 | }; | 2889 | }; |
| 2891 | 2890 | ||
| 2892 | #ifdef CONFIG_PCI | 2891 | #ifdef CONFIG_PCI |
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c index e970e64bf966..a79f28c7a100 100644 --- a/drivers/net/8139cp.c +++ b/drivers/net/8139cp.c | |||
| @@ -1578,7 +1578,6 @@ static const struct ethtool_ops cp_ethtool_ops = { | |||
| 1578 | .set_wol = cp_set_wol, | 1578 | .set_wol = cp_set_wol, |
| 1579 | .get_strings = cp_get_strings, | 1579 | .get_strings = cp_get_strings, |
| 1580 | .get_ethtool_stats = cp_get_ethtool_stats, | 1580 | .get_ethtool_stats = cp_get_ethtool_stats, |
| 1581 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1582 | .get_eeprom_len = cp_get_eeprom_len, | 1581 | .get_eeprom_len = cp_get_eeprom_len, |
| 1583 | .get_eeprom = cp_get_eeprom, | 1582 | .get_eeprom = cp_get_eeprom, |
| 1584 | .set_eeprom = cp_set_eeprom, | 1583 | .set_eeprom = cp_set_eeprom, |
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c index 327eaa7b4999..f4e4298d24b9 100644 --- a/drivers/net/8139too.c +++ b/drivers/net/8139too.c | |||
| @@ -2452,7 +2452,6 @@ static const struct ethtool_ops rtl8139_ethtool_ops = { | |||
| 2452 | .get_strings = rtl8139_get_strings, | 2452 | .get_strings = rtl8139_get_strings, |
| 2453 | .get_stats_count = rtl8139_get_stats_count, | 2453 | .get_stats_count = rtl8139_get_stats_count, |
| 2454 | .get_ethtool_stats = rtl8139_get_ethtool_stats, | 2454 | .get_ethtool_stats = rtl8139_get_ethtool_stats, |
| 2455 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 2456 | }; | 2455 | }; |
| 2457 | 2456 | ||
| 2458 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 2457 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
diff --git a/drivers/net/ax88796.c b/drivers/net/ax88796.c index e43e8047b90e..83da1770bafb 100644 --- a/drivers/net/ax88796.c +++ b/drivers/net/ax88796.c | |||
| @@ -580,7 +580,6 @@ static const struct ethtool_ops ax_ethtool_ops = { | |||
| 580 | .set_settings = ax_set_settings, | 580 | .set_settings = ax_set_settings, |
| 581 | .nway_reset = ax_nway_reset, | 581 | .nway_reset = ax_nway_reset, |
| 582 | .get_link = ax_get_link, | 582 | .get_link = ax_get_link, |
| 583 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 584 | }; | 583 | }; |
| 585 | 584 | ||
| 586 | /* setup code */ | 585 | /* setup code */ |
diff --git a/drivers/net/b44.c b/drivers/net/b44.c index 37f1b6ff5c12..0795df235492 100644 --- a/drivers/net/b44.c +++ b/drivers/net/b44.c | |||
| @@ -2033,7 +2033,6 @@ static const struct ethtool_ops b44_ethtool_ops = { | |||
| 2033 | .get_strings = b44_get_strings, | 2033 | .get_strings = b44_get_strings, |
| 2034 | .get_stats_count = b44_get_stats_count, | 2034 | .get_stats_count = b44_get_stats_count, |
| 2035 | .get_ethtool_stats = b44_get_ethtool_stats, | 2035 | .get_ethtool_stats = b44_get_ethtool_stats, |
| 2036 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 2037 | }; | 2036 | }; |
| 2038 | 2037 | ||
| 2039 | static int b44_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | 2038 | static int b44_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) |
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index a729da061bbb..d53dfc5bbae0 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
| @@ -6269,7 +6269,6 @@ static const struct ethtool_ops bnx2_ethtool_ops = { | |||
| 6269 | .phys_id = bnx2_phys_id, | 6269 | .phys_id = bnx2_phys_id, |
| 6270 | .get_stats_count = bnx2_get_stats_count, | 6270 | .get_stats_count = bnx2_get_stats_count, |
| 6271 | .get_ethtool_stats = bnx2_get_ethtool_stats, | 6271 | .get_ethtool_stats = bnx2_get_ethtool_stats, |
| 6272 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 6273 | }; | 6272 | }; |
| 6274 | 6273 | ||
| 6275 | /* Called with rtnl_lock */ | 6274 | /* Called with rtnl_lock */ |
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c index 6fd1e5241833..dc5d26988bb3 100644 --- a/drivers/net/cxgb3/cxgb3_main.c +++ b/drivers/net/cxgb3/cxgb3_main.c | |||
| @@ -1583,7 +1583,6 @@ static const struct ethtool_ops cxgb_ethtool_ops = { | |||
| 1583 | .get_wol = get_wol, | 1583 | .get_wol = get_wol, |
| 1584 | .get_tso = ethtool_op_get_tso, | 1584 | .get_tso = ethtool_op_get_tso, |
| 1585 | .set_tso = ethtool_op_set_tso, | 1585 | .set_tso = ethtool_op_set_tso, |
| 1586 | .get_perm_addr = ethtool_op_get_perm_addr | ||
| 1587 | }; | 1586 | }; |
| 1588 | 1587 | ||
| 1589 | static int in_range(int val, int lo, int hi) | 1588 | static int in_range(int val, int lo, int hi) |
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index 6b6401e9304e..280313b9b069 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c | |||
| @@ -2506,7 +2506,6 @@ static const struct ethtool_ops e100_ethtool_ops = { | |||
| 2506 | .phys_id = e100_phys_id, | 2506 | .phys_id = e100_phys_id, |
| 2507 | .get_stats_count = e100_get_stats_count, | 2507 | .get_stats_count = e100_get_stats_count, |
| 2508 | .get_ethtool_stats = e100_get_ethtool_stats, | 2508 | .get_ethtool_stats = e100_get_ethtool_stats, |
| 2509 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 2510 | }; | 2509 | }; |
| 2511 | 2510 | ||
| 2512 | static int e100_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) | 2511 | static int e100_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) |
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index bb08375b5f13..c90c92e72d2a 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c | |||
| @@ -1973,7 +1973,6 @@ static const struct ethtool_ops e1000_ethtool_ops = { | |||
| 1973 | .phys_id = e1000_phys_id, | 1973 | .phys_id = e1000_phys_id, |
| 1974 | .get_stats_count = e1000_get_stats_count, | 1974 | .get_stats_count = e1000_get_stats_count, |
| 1975 | .get_ethtool_stats = e1000_get_ethtool_stats, | 1975 | .get_ethtool_stats = e1000_get_ethtool_stats, |
| 1976 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1977 | }; | 1976 | }; |
| 1978 | 1977 | ||
| 1979 | void e1000_set_ethtool_ops(struct net_device *netdev) | 1978 | void e1000_set_ethtool_ops(struct net_device *netdev) |
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 51e1cb472738..69f5f365239a 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
| @@ -4707,7 +4707,6 @@ static const struct ethtool_ops ops = { | |||
| 4707 | .get_regs_len = nv_get_regs_len, | 4707 | .get_regs_len = nv_get_regs_len, |
| 4708 | .get_regs = nv_get_regs, | 4708 | .get_regs = nv_get_regs, |
| 4709 | .nway_reset = nv_nway_reset, | 4709 | .nway_reset = nv_nway_reset, |
| 4710 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 4711 | .get_tso = ethtool_op_get_tso, | 4710 | .get_tso = ethtool_op_get_tso, |
| 4712 | .set_tso = nv_set_tso, | 4711 | .set_tso = nv_set_tso, |
| 4713 | .get_ringparam = nv_get_ringparam, | 4712 | .get_ringparam = nv_get_ringparam, |
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c index afde84868bea..0413cd95eda7 100644 --- a/drivers/net/ixgb/ixgb_ethtool.c +++ b/drivers/net/ixgb/ixgb_ethtool.c | |||
| @@ -724,7 +724,6 @@ static const struct ethtool_ops ixgb_ethtool_ops = { | |||
| 724 | .phys_id = ixgb_phys_id, | 724 | .phys_id = ixgb_phys_id, |
| 725 | .get_stats_count = ixgb_get_stats_count, | 725 | .get_stats_count = ixgb_get_stats_count, |
| 726 | .get_ethtool_stats = ixgb_get_ethtool_stats, | 726 | .get_ethtool_stats = ixgb_get_ethtool_stats, |
| 727 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 728 | }; | 727 | }; |
| 729 | 728 | ||
| 730 | void ixgb_set_ethtool_ops(struct net_device *netdev) | 729 | void ixgb_set_ethtool_ops(struct net_device *netdev) |
diff --git a/drivers/net/ne2k-pci.c b/drivers/net/ne2k-pci.c index cfdeaf7aa163..f81d9398d605 100644 --- a/drivers/net/ne2k-pci.c +++ b/drivers/net/ne2k-pci.c | |||
| @@ -638,7 +638,6 @@ static const struct ethtool_ops ne2k_pci_ethtool_ops = { | |||
| 638 | .get_drvinfo = ne2k_pci_get_drvinfo, | 638 | .get_drvinfo = ne2k_pci_get_drvinfo, |
| 639 | .get_tx_csum = ethtool_op_get_tx_csum, | 639 | .get_tx_csum = ethtool_op_get_tx_csum, |
| 640 | .get_sg = ethtool_op_get_sg, | 640 | .get_sg = ethtool_op_get_sg, |
| 641 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 642 | }; | 641 | }; |
| 643 | 642 | ||
| 644 | static void __devexit ne2k_pci_remove_one (struct pci_dev *pdev) | 643 | static void __devexit ne2k_pci_remove_one (struct pci_dev *pdev) |
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c index 0175f6c353f6..a6138b474b4a 100644 --- a/drivers/net/netxen/netxen_nic_ethtool.c +++ b/drivers/net/netxen/netxen_nic_ethtool.c | |||
| @@ -755,5 +755,4 @@ struct ethtool_ops netxen_nic_ethtool_ops = { | |||
| 755 | .get_strings = netxen_nic_get_strings, | 755 | .get_strings = netxen_nic_get_strings, |
| 756 | .get_stats_count = netxen_nic_get_stats_count, | 756 | .get_stats_count = netxen_nic_get_stats_count, |
| 757 | .get_ethtool_stats = netxen_nic_get_ethtool_stats, | 757 | .get_ethtool_stats = netxen_nic_get_ethtool_stats, |
| 758 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 759 | }; | 758 | }; |
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index 465485a3fbc6..e6a67531de99 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
| @@ -1515,7 +1515,6 @@ static const struct ethtool_ops pcnet32_ethtool_ops = { | |||
| 1515 | .phys_id = pcnet32_phys_id, | 1515 | .phys_id = pcnet32_phys_id, |
| 1516 | .get_regs_len = pcnet32_get_regs_len, | 1516 | .get_regs_len = pcnet32_get_regs_len, |
| 1517 | .get_regs = pcnet32_get_regs, | 1517 | .get_regs = pcnet32_get_regs, |
| 1518 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1519 | }; | 1518 | }; |
| 1520 | 1519 | ||
| 1521 | /* only probes for non-PCI devices, the rest are handled by | 1520 | /* only probes for non-PCI devices, the rest are handled by |
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c index 8be8be451ada..69da95b5ad0c 100755 --- a/drivers/net/qla3xxx.c +++ b/drivers/net/qla3xxx.c | |||
| @@ -1904,7 +1904,6 @@ static void ql_get_pauseparam(struct net_device *ndev, | |||
| 1904 | static const struct ethtool_ops ql3xxx_ethtool_ops = { | 1904 | static const struct ethtool_ops ql3xxx_ethtool_ops = { |
| 1905 | .get_settings = ql_get_settings, | 1905 | .get_settings = ql_get_settings, |
| 1906 | .get_drvinfo = ql_get_drvinfo, | 1906 | .get_drvinfo = ql_get_drvinfo, |
| 1907 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1908 | .get_link = ethtool_op_get_link, | 1907 | .get_link = ethtool_op_get_link, |
| 1909 | .get_msglevel = ql_get_msglevel, | 1908 | .get_msglevel = ql_get_msglevel, |
| 1910 | .set_msglevel = ql_set_msglevel, | 1909 | .set_msglevel = ql_set_msglevel, |
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index bb6896ae3151..c9333b9dd51a 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c | |||
| @@ -1066,7 +1066,6 @@ static const struct ethtool_ops rtl8169_ethtool_ops = { | |||
| 1066 | .get_strings = rtl8169_get_strings, | 1066 | .get_strings = rtl8169_get_strings, |
| 1067 | .get_stats_count = rtl8169_get_stats_count, | 1067 | .get_stats_count = rtl8169_get_stats_count, |
| 1068 | .get_ethtool_stats = rtl8169_get_ethtool_stats, | 1068 | .get_ethtool_stats = rtl8169_get_ethtool_stats, |
| 1069 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1070 | }; | 1069 | }; |
| 1071 | 1070 | ||
| 1072 | static void rtl8169_write_gmii_reg_bit(void __iomem *ioaddr, int reg, | 1071 | static void rtl8169_write_gmii_reg_bit(void __iomem *ioaddr, int reg, |
diff --git a/drivers/net/sc92031.c b/drivers/net/sc92031.c index 5b7284c955dc..872cb1cc9c41 100644 --- a/drivers/net/sc92031.c +++ b/drivers/net/sc92031.c | |||
| @@ -1402,7 +1402,6 @@ static struct ethtool_ops sc92031_ethtool_ops = { | |||
| 1402 | .get_strings = sc92031_ethtool_get_strings, | 1402 | .get_strings = sc92031_ethtool_get_strings, |
| 1403 | .get_stats_count = sc92031_ethtool_get_stats_count, | 1403 | .get_stats_count = sc92031_ethtool_get_stats_count, |
| 1404 | .get_ethtool_stats = sc92031_ethtool_get_ethtool_stats, | 1404 | .get_ethtool_stats = sc92031_ethtool_get_ethtool_stats, |
| 1405 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1406 | .get_ufo = ethtool_op_get_ufo, | 1405 | .get_ufo = ethtool_op_get_ufo, |
| 1407 | }; | 1406 | }; |
| 1408 | 1407 | ||
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 776692946562..e3d8520209b8 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
| @@ -821,7 +821,6 @@ static const struct ethtool_ops skge_ethtool_ops = { | |||
| 821 | .phys_id = skge_phys_id, | 821 | .phys_id = skge_phys_id, |
| 822 | .get_stats_count = skge_get_stats_count, | 822 | .get_stats_count = skge_get_stats_count, |
| 823 | .get_ethtool_stats = skge_get_ethtool_stats, | 823 | .get_ethtool_stats = skge_get_ethtool_stats, |
| 824 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 825 | }; | 824 | }; |
| 826 | 825 | ||
| 827 | /* | 826 | /* |
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 13f08a390e1f..e7a2eadcc3b0 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
| @@ -3548,7 +3548,6 @@ static const struct ethtool_ops sky2_ethtool_ops = { | |||
| 3548 | .phys_id = sky2_phys_id, | 3548 | .phys_id = sky2_phys_id, |
| 3549 | .get_stats_count = sky2_get_stats_count, | 3549 | .get_stats_count = sky2_get_stats_count, |
| 3550 | .get_ethtool_stats = sky2_get_ethtool_stats, | 3550 | .get_ethtool_stats = sky2_get_ethtool_stats, |
| 3551 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 3552 | }; | 3551 | }; |
| 3553 | 3552 | ||
| 3554 | #ifdef CONFIG_SKY2_DEBUG | 3553 | #ifdef CONFIG_SKY2_DEBUG |
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c index af0c9831074c..a8f2af8f778a 100644 --- a/drivers/net/sundance.c +++ b/drivers/net/sundance.c | |||
| @@ -1586,7 +1586,6 @@ static const struct ethtool_ops ethtool_ops = { | |||
| 1586 | .get_link = get_link, | 1586 | .get_link = get_link, |
| 1587 | .get_msglevel = get_msglevel, | 1587 | .get_msglevel = get_msglevel, |
| 1588 | .set_msglevel = set_msglevel, | 1588 | .set_msglevel = set_msglevel, |
| 1589 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1590 | }; | 1589 | }; |
| 1591 | 1590 | ||
| 1592 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 1591 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
diff --git a/drivers/net/sunvnet.c b/drivers/net/sunvnet.c index 61f98251feab..ff1028a597df 100644 --- a/drivers/net/sunvnet.c +++ b/drivers/net/sunvnet.c | |||
| @@ -906,7 +906,6 @@ static const struct ethtool_ops vnet_ethtool_ops = { | |||
| 906 | .get_msglevel = vnet_get_msglevel, | 906 | .get_msglevel = vnet_get_msglevel, |
| 907 | .set_msglevel = vnet_set_msglevel, | 907 | .set_msglevel = vnet_set_msglevel, |
| 908 | .get_link = ethtool_op_get_link, | 908 | .get_link = ethtool_op_get_link, |
| 909 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 910 | }; | 909 | }; |
| 911 | 910 | ||
| 912 | static void vnet_port_free_tx_bufs(struct vnet_port *port) | 911 | static void vnet_port_free_tx_bufs(struct vnet_port *port) |
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c index 7f94ca930988..ec41469eee82 100644 --- a/drivers/net/tc35815.c +++ b/drivers/net/tc35815.c | |||
| @@ -2198,7 +2198,6 @@ static const struct ethtool_ops tc35815_ethtool_ops = { | |||
| 2198 | .get_strings = tc35815_get_strings, | 2198 | .get_strings = tc35815_get_strings, |
| 2199 | .get_stats_count = tc35815_get_stats_count, | 2199 | .get_stats_count = tc35815_get_stats_count, |
| 2200 | .get_ethtool_stats = tc35815_get_ethtool_stats, | 2200 | .get_ethtool_stats = tc35815_get_ethtool_stats, |
| 2201 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 2202 | }; | 2201 | }; |
| 2203 | 2202 | ||
| 2204 | static int tc35815_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 2203 | static int tc35815_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 887b9a5cfe48..dc41c055ebb5 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
| @@ -9294,7 +9294,6 @@ static const struct ethtool_ops tg3_ethtool_ops = { | |||
| 9294 | .get_ethtool_stats = tg3_get_ethtool_stats, | 9294 | .get_ethtool_stats = tg3_get_ethtool_stats, |
| 9295 | .get_coalesce = tg3_get_coalesce, | 9295 | .get_coalesce = tg3_get_coalesce, |
| 9296 | .set_coalesce = tg3_set_coalesce, | 9296 | .set_coalesce = tg3_set_coalesce, |
| 9297 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 9298 | }; | 9297 | }; |
| 9299 | 9298 | ||
| 9300 | static void __devinit tg3_get_eeprom_size(struct tg3 *tp) | 9299 | static void __devinit tg3_get_eeprom_size(struct tg3 *tp) |
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c index f51c2c138f10..c3fe230695a0 100644 --- a/drivers/net/via-rhine.c +++ b/drivers/net/via-rhine.c | |||
| @@ -1805,7 +1805,6 @@ static const struct ethtool_ops netdev_ethtool_ops = { | |||
| 1805 | .set_wol = rhine_set_wol, | 1805 | .set_wol = rhine_set_wol, |
| 1806 | .get_sg = ethtool_op_get_sg, | 1806 | .get_sg = ethtool_op_get_sg, |
| 1807 | .get_tx_csum = ethtool_op_get_tx_csum, | 1807 | .get_tx_csum = ethtool_op_get_tx_csum, |
| 1808 | .get_perm_addr = ethtool_op_get_perm_addr, | ||
| 1809 | }; | 1808 | }; |
| 1810 | 1809 | ||
| 1811 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 1810 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 3a632244f31b..23ccea811297 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
| @@ -270,8 +270,6 @@ u32 ethtool_op_get_sg(struct net_device *dev); | |||
| 270 | int ethtool_op_set_sg(struct net_device *dev, u32 data); | 270 | int ethtool_op_set_sg(struct net_device *dev, u32 data); |
| 271 | u32 ethtool_op_get_tso(struct net_device *dev); | 271 | u32 ethtool_op_get_tso(struct net_device *dev); |
| 272 | int ethtool_op_set_tso(struct net_device *dev, u32 data); | 272 | int ethtool_op_set_tso(struct net_device *dev, u32 data); |
| 273 | int ethtool_op_get_perm_addr(struct net_device *dev, | ||
| 274 | struct ethtool_perm_addr *addr, u8 *data); | ||
| 275 | u32 ethtool_op_get_ufo(struct net_device *dev); | 273 | u32 ethtool_op_get_ufo(struct net_device *dev); |
| 276 | int ethtool_op_set_ufo(struct net_device *dev, u32 data); | 274 | int ethtool_op_set_ufo(struct net_device *dev, u32 data); |
| 277 | 275 | ||
| @@ -309,7 +307,6 @@ int ethtool_op_set_ufo(struct net_device *dev, u32 data); | |||
| 309 | * get_strings: Return a set of strings that describe the requested objects | 307 | * get_strings: Return a set of strings that describe the requested objects |
| 310 | * phys_id: Identify the device | 308 | * phys_id: Identify the device |
| 311 | * get_stats: Return statistics about the device | 309 | * get_stats: Return statistics about the device |
| 312 | * get_perm_addr: Gets the permanent hardware address | ||
| 313 | * | 310 | * |
| 314 | * Description: | 311 | * Description: |
| 315 | * | 312 | * |
| @@ -368,7 +365,6 @@ struct ethtool_ops { | |||
| 368 | int (*phys_id)(struct net_device *, u32); | 365 | int (*phys_id)(struct net_device *, u32); |
| 369 | int (*get_stats_count)(struct net_device *); | 366 | int (*get_stats_count)(struct net_device *); |
| 370 | void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *); | 367 | void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *); |
| 371 | int (*get_perm_addr)(struct net_device *, struct ethtool_perm_addr *, u8 *); | ||
| 372 | int (*begin)(struct net_device *); | 368 | int (*begin)(struct net_device *); |
| 373 | void (*complete)(struct net_device *); | 369 | void (*complete)(struct net_device *); |
| 374 | u32 (*get_ufo)(struct net_device *); | 370 | u32 (*get_ufo)(struct net_device *); |
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 2bf565e8d0b3..2ab0a60046a5 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
| @@ -95,18 +95,6 @@ int ethtool_op_set_tso(struct net_device *dev, u32 data) | |||
| 95 | return 0; | 95 | return 0; |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | int ethtool_op_get_perm_addr(struct net_device *dev, struct ethtool_perm_addr *addr, u8 *data) | ||
| 99 | { | ||
| 100 | unsigned char len = dev->addr_len; | ||
| 101 | if ( addr->size < len ) | ||
| 102 | return -ETOOSMALL; | ||
| 103 | |||
| 104 | addr->size = len; | ||
| 105 | memcpy(data, dev->perm_addr, len); | ||
| 106 | return 0; | ||
| 107 | } | ||
| 108 | |||
| 109 | |||
| 110 | u32 ethtool_op_get_ufo(struct net_device *dev) | 98 | u32 ethtool_op_get_ufo(struct net_device *dev) |
| 111 | { | 99 | { |
| 112 | return (dev->features & NETIF_F_UFO) != 0; | 100 | return (dev->features & NETIF_F_UFO) != 0; |
| @@ -779,34 +767,20 @@ static int ethtool_get_stats(struct net_device *dev, void __user *useraddr) | |||
| 779 | static int ethtool_get_perm_addr(struct net_device *dev, void __user *useraddr) | 767 | static int ethtool_get_perm_addr(struct net_device *dev, void __user *useraddr) |
| 780 | { | 768 | { |
| 781 | struct ethtool_perm_addr epaddr; | 769 | struct ethtool_perm_addr epaddr; |
| 782 | u8 *data; | ||
| 783 | int ret; | ||
| 784 | |||
| 785 | if (!dev->ethtool_ops->get_perm_addr) | ||
| 786 | return -EOPNOTSUPP; | ||
| 787 | 770 | ||
| 788 | if (copy_from_user(&epaddr,useraddr,sizeof(epaddr))) | 771 | if (copy_from_user(&epaddr, useraddr, sizeof(epaddr))) |
| 789 | return -EFAULT; | 772 | return -EFAULT; |
| 790 | 773 | ||
| 791 | data = kmalloc(epaddr.size, GFP_USER); | 774 | if (epaddr.size < dev->addr_len) |
| 792 | if (!data) | 775 | return -ETOOSMALL; |
| 793 | return -ENOMEM; | 776 | epaddr.size = dev->addr_len; |
| 794 | |||
| 795 | ret = dev->ethtool_ops->get_perm_addr(dev,&epaddr,data); | ||
| 796 | if (ret) | ||
| 797 | return ret; | ||
| 798 | 777 | ||
| 799 | ret = -EFAULT; | ||
| 800 | if (copy_to_user(useraddr, &epaddr, sizeof(epaddr))) | 778 | if (copy_to_user(useraddr, &epaddr, sizeof(epaddr))) |
| 801 | goto out; | 779 | return -EFAULT; |
| 802 | useraddr += sizeof(epaddr); | 780 | useraddr += sizeof(epaddr); |
| 803 | if (copy_to_user(useraddr, data, epaddr.size)) | 781 | if (copy_to_user(useraddr, dev->perm_addr, epaddr.size)) |
| 804 | goto out; | 782 | return -EFAULT; |
| 805 | ret = 0; | 783 | return 0; |
| 806 | |||
| 807 | out: | ||
| 808 | kfree(data); | ||
| 809 | return ret; | ||
| 810 | } | 784 | } |
| 811 | 785 | ||
| 812 | /* The main entry point in this file. Called from net/core/dev.c */ | 786 | /* The main entry point in this file. Called from net/core/dev.c */ |
| @@ -976,7 +950,6 @@ int dev_ethtool(struct ifreq *ifr) | |||
| 976 | 950 | ||
| 977 | EXPORT_SYMBOL(dev_ethtool); | 951 | EXPORT_SYMBOL(dev_ethtool); |
| 978 | EXPORT_SYMBOL(ethtool_op_get_link); | 952 | EXPORT_SYMBOL(ethtool_op_get_link); |
| 979 | EXPORT_SYMBOL_GPL(ethtool_op_get_perm_addr); | ||
| 980 | EXPORT_SYMBOL(ethtool_op_get_sg); | 953 | EXPORT_SYMBOL(ethtool_op_get_sg); |
| 981 | EXPORT_SYMBOL(ethtool_op_get_tso); | 954 | EXPORT_SYMBOL(ethtool_op_get_tso); |
| 982 | EXPORT_SYMBOL(ethtool_op_get_tx_csum); | 955 | EXPORT_SYMBOL(ethtool_op_get_tx_csum); |
