Lines Matching full:if
35 * If we find that all drivers want to do the same thing here,
81 if (get_user(copy_size, sizeaddr)) in ethtool_get_features()
84 if (copy_size > ETHTOOL_DEV_FEATURE_WORDS) in ethtool_get_features()
87 if (copy_to_user(useraddr, &cmd, sizeof(cmd))) in ethtool_get_features()
90 if (copy_to_user(useraddr, features, copy_size * sizeof(*features))) in ethtool_get_features()
103 if (copy_from_user(&cmd, useraddr, sizeof(cmd))) in ethtool_set_features()
107 if (cmd.size != ETHTOOL_DEV_FEATURE_WORDS) in ethtool_set_features()
110 if (copy_from_user(features, useraddr, sizeof(features))) in ethtool_set_features()
118 if (valid & ~NETIF_F_ETHTOOL_BITS) in ethtool_set_features()
121 if (valid & ~dev->hw_features) { in ethtool_set_features()
130 if ((dev->wanted_features ^ dev->features) & valid) in ethtool_set_features()
141 if (sset == ETH_SS_FEATURES) in __ethtool_get_sset_count()
144 if (sset == ETH_SS_RSS_HASH_FUNCS) in __ethtool_get_sset_count()
147 if (sset == ETH_SS_TUNABLES) in __ethtool_get_sset_count()
150 if (sset == ETH_SS_PHY_TUNABLES) in __ethtool_get_sset_count()
153 if (sset == ETH_SS_PHY_STATS && dev->phydev && in __ethtool_get_sset_count()
158 if (sset == ETH_SS_LINK_MODES) in __ethtool_get_sset_count()
161 if (ops->get_sset_count && ops->get_strings) in __ethtool_get_sset_count()
173 if (stringset == ETH_SS_FEATURES) in __ethtool_get_strings()
176 else if (stringset == ETH_SS_RSS_HASH_FUNCS) in __ethtool_get_strings()
179 else if (stringset == ETH_SS_TUNABLES) in __ethtool_get_strings()
181 else if (stringset == ETH_SS_PHY_TUNABLES) in __ethtool_get_strings()
183 else if (stringset == ETH_SS_PHY_STATS && dev->phydev && in __ethtool_get_strings()
187 else if (stringset == ETH_SS_LINK_MODES) in __ethtool_get_strings()
233 if (copy_to_user(useraddr, &edata, sizeof(edata))) in ethtool_get_one_feature()
244 if (copy_from_user(&edata, useraddr, sizeof(edata))) in ethtool_set_one_feature()
249 if (!mask) in ethtool_set_one_feature()
252 if (edata.data) in ethtool_set_one_feature()
272 if (dev->features & NETIF_F_LRO) in __ethtool_get_flags()
274 if (dev->features & NETIF_F_HW_VLAN_CTAG_RX) in __ethtool_get_flags()
276 if (dev->features & NETIF_F_HW_VLAN_CTAG_TX) in __ethtool_get_flags()
278 if (dev->features & NETIF_F_NTUPLE) in __ethtool_get_flags()
280 if (dev->features & NETIF_F_RXHASH) in __ethtool_get_flags()
290 if (data & ~ETH_ALL_FLAGS) in __ethtool_set_flags()
293 if (data & ETH_FLAG_LRO) in __ethtool_set_flags()
295 if (data & ETH_FLAG_RXVLAN) in __ethtool_set_flags()
297 if (data & ETH_FLAG_TXVLAN) in __ethtool_set_flags()
299 if (data & ETH_FLAG_NTUPLE) in __ethtool_set_flags()
301 if (data & ETH_FLAG_RXHASH) in __ethtool_set_flags()
306 if (changed & ~dev->hw_features) in __ethtool_set_flags()
341 /* return false if src had higher bits set. lower bits always updated. */
348 if (__ETHTOOL_LINK_MODE_MASK_NBITS > 32) { in ethtool_convert_link_mode_to_legacy_u32()
354 if (bitmap_intersects(ext, src, in ethtool_convert_link_mode_to_legacy_u32()
365 /* return false if ksettings link modes had higher bits
431 if (!dev->ethtool_ops->get_link_ksettings) in __ethtool_get_link_ksettings()
447 if (copy_from_user(&link_usettings, from, sizeof(link_usettings))) in load_link_ksettings_from_user()
464 /* Check if the user is trying to change anything besides speed/duplex */
503 if (copy_to_user(to, &link_usettings, sizeof(link_usettings))) in store_link_ksettings_for_user()
517 if (!dev->ethtool_ops->get_link_ksettings) in ethtool_get_link_ksettings()
521 if (copy_from_user(&link_ksettings.base, useraddr, in ethtool_get_link_ksettings()
525 if (__ETHTOOL_LINK_MODE_MASK_NU32 in ethtool_get_link_ksettings()
539 if (copy_to_user(useraddr, &link_ksettings.base, in ethtool_get_link_ksettings()
552 if (err < 0) in ethtool_get_link_ksettings()
574 if (!dev->ethtool_ops->set_link_ksettings) in ethtool_set_link_ksettings()
578 if (copy_from_user(&link_ksettings.base, useraddr, in ethtool_set_link_ksettings()
582 if (__ETHTOOL_LINK_MODE_MASK_NU32 in ethtool_set_link_ksettings()
590 if (err) in ethtool_set_link_ksettings()
594 if (__ETHTOOL_LINK_MODE_MASK_NU32 in ethtool_set_link_ksettings()
598 if (link_ksettings.base.master_slave_cfg || in ethtool_set_link_ksettings()
603 if (err >= 0) { in ethtool_set_link_ksettings()
620 if (!ethtool_validate_speed(speed) || in ethtool_virtdev_set_link_ksettings()
647 if (!dev->ethtool_ops->get_link_ksettings) in ethtool_get_settings()
652 if (err < 0) in ethtool_get_settings()
659 if (copy_to_user(useraddr, &cmd, sizeof(cmd))) in ethtool_get_settings()
681 if (copy_from_user(&cmd, useraddr, sizeof(cmd))) in ethtool_set_settings()
683 if (!dev->ethtool_ops->set_link_ksettings) in ethtool_set_settings()
686 if (!convert_legacy_settings_to_link_ksettings(&link_ksettings, &cmd)) in ethtool_set_settings()
691 if (ret >= 0) { in ethtool_set_settings()
707 if (ops->get_drvinfo) { in ethtool_get_drvinfo()
709 } else if (dev->dev.parent && dev->dev.parent->driver) { in ethtool_get_drvinfo()
722 if (ops->get_sset_count) { in ethtool_get_drvinfo()
726 if (rc >= 0) in ethtool_get_drvinfo()
729 if (rc >= 0) in ethtool_get_drvinfo()
732 if (rc >= 0) in ethtool_get_drvinfo()
735 if (ops->get_regs_len) { in ethtool_get_drvinfo()
738 if (ret > 0) in ethtool_get_drvinfo()
742 if (ops->get_eeprom_len) in ethtool_get_drvinfo()
745 if (!info.fw_version[0]) in ethtool_get_drvinfo()
749 if (copy_to_user(useraddr, &info, sizeof(info))) in ethtool_get_drvinfo()
762 if (copy_from_user(&info, useraddr, sizeof(info))) in ethtool_get_sset_info()
767 if (!sset_mask) in ethtool_get_sset_info()
777 if (!info_buf) in ethtool_get_sset_info()
785 if (!(sset_mask & (1ULL << i))) in ethtool_get_sset_info()
789 if (rc >= 0) { in ethtool_get_sset_info()
796 if (copy_to_user(useraddr, &info, sizeof(info))) in ethtool_get_sset_info()
800 if (copy_to_user(useraddr, info_buf, idx * sizeof(u32))) in ethtool_get_sset_info()
817 if (!dev->ethtool_ops->set_rxnfc) in ethtool_set_rxnfc()
824 if (cmd == ETHTOOL_SRXFH) in ethtool_set_rxnfc()
828 if (copy_from_user(&info, useraddr, info_size)) in ethtool_set_rxnfc()
832 if (rc) in ethtool_set_rxnfc()
835 if (cmd == ETHTOOL_SRXCLSRLINS && in ethtool_set_rxnfc()
851 if (!ops->get_rxnfc) in ethtool_get_rxnfc()
858 if (cmd == ETHTOOL_GRXFH) in ethtool_get_rxnfc()
862 if (copy_from_user(&info, useraddr, info_size)) in ethtool_get_rxnfc()
865 /* If FLOW_RSS was requested then user-space must be using the in ethtool_get_rxnfc()
868 if (cmd == ETHTOOL_GRXFH && info.flow_type & FLOW_RSS) { in ethtool_get_rxnfc()
870 if (copy_from_user(&info, useraddr, info_size)) in ethtool_get_rxnfc()
875 if (!(info.flow_type & FLOW_RSS)) in ethtool_get_rxnfc()
879 if (info.cmd != cmd) in ethtool_get_rxnfc()
882 if (info.cmd == ETHTOOL_GRXCLSRLALL) { in ethtool_get_rxnfc()
883 if (info.rule_cnt > 0) { in ethtool_get_rxnfc()
884 if (info.rule_cnt <= KMALLOC_MAX_SIZE / sizeof(u32)) in ethtool_get_rxnfc()
887 if (!rule_buf) in ethtool_get_rxnfc()
893 if (ret < 0) in ethtool_get_rxnfc()
897 if (copy_to_user(useraddr, &info, info_size)) in ethtool_get_rxnfc()
900 if (rule_buf) { in ethtool_get_rxnfc()
902 if (copy_to_user(useraddr, rule_buf, in ethtool_get_rxnfc()
920 if (copy_from_user(indir, useraddr, size * sizeof(indir[0]))) in ethtool_copy_validate_indir()
925 if (indir[i] >= rx_rings->data) in ethtool_copy_validate_indir()
948 if (!dev->ethtool_ops->get_rxfh_indir_size || in ethtool_get_rxfh_indir()
952 if (dev_size == 0) in ethtool_get_rxfh_indir()
955 if (copy_from_user(&user_size, in ethtool_get_rxfh_indir()
960 if (copy_to_user(useraddr + offsetof(struct ethtool_rxfh_indir, size), in ethtool_get_rxfh_indir()
964 /* If the user buffer size is 0, this is just a query for the in ethtool_get_rxfh_indir()
965 * device table size. Otherwise, if it's smaller than the in ethtool_get_rxfh_indir()
968 if (user_size < dev_size) in ethtool_get_rxfh_indir()
972 if (!indir) in ethtool_get_rxfh_indir()
976 if (ret) in ethtool_get_rxfh_indir()
979 if (copy_to_user(useraddr + in ethtool_get_rxfh_indir()
999 if (!ops->get_rxfh_indir_size || !ops->set_rxfh || in ethtool_set_rxfh_indir()
1004 if (dev_size == 0) in ethtool_set_rxfh_indir()
1007 if (copy_from_user(&user_size, in ethtool_set_rxfh_indir()
1012 if (user_size != 0 && user_size != dev_size) in ethtool_set_rxfh_indir()
1016 if (!indir) in ethtool_set_rxfh_indir()
1021 if (ret) in ethtool_set_rxfh_indir()
1024 if (user_size == 0) { in ethtool_set_rxfh_indir()
1032 if (ret) in ethtool_set_rxfh_indir()
1037 if (ret) in ethtool_set_rxfh_indir()
1041 if (user_size == 0) in ethtool_set_rxfh_indir()
1066 if (!ops->get_rxfh) in ethtool_get_rxfh()
1069 if (ops->get_rxfh_indir_size) in ethtool_get_rxfh()
1071 if (ops->get_rxfh_key_size) in ethtool_get_rxfh()
1074 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_get_rxfh()
1080 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32) in ethtool_get_rxfh()
1083 if (rxfh.rss_context && !ops->get_rxfh_context) in ethtool_get_rxfh()
1088 if (copy_to_user(useraddr, &rxfh, sizeof(rxfh))) in ethtool_get_rxfh()
1091 if ((user_indir_size && (user_indir_size != dev_indir_size)) || in ethtool_get_rxfh()
1098 if (!rss_config) in ethtool_get_rxfh()
1101 if (user_indir_size) in ethtool_get_rxfh()
1104 if (user_key_size) in ethtool_get_rxfh()
1107 if (rxfh.rss_context) in ethtool_get_rxfh()
1113 if (ret) in ethtool_get_rxfh()
1116 if (copy_to_user(useraddr + offsetof(struct ethtool_rxfh, hfunc), in ethtool_get_rxfh()
1119 } else if (copy_to_user(useraddr + in ethtool_get_rxfh()
1144 if (!ops->get_rxnfc || !ops->set_rxfh) in ethtool_set_rxfh()
1147 if (ops->get_rxfh_indir_size) in ethtool_set_rxfh()
1149 if (ops->get_rxfh_key_size) in ethtool_set_rxfh()
1152 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_set_rxfh()
1156 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32) in ethtool_set_rxfh()
1159 if (rxfh.rss_context && !ops->set_rxfh_context) in ethtool_set_rxfh()
1162 /* If either indir, hash key or function is valid, proceed further. in ethtool_set_rxfh()
1165 if ((rxfh.indir_size && in ethtool_set_rxfh()
1173 if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) in ethtool_set_rxfh()
1177 if (!rss_config) in ethtool_set_rxfh()
1182 if (ret) in ethtool_set_rxfh()
1189 if (rxfh.indir_size && in ethtool_set_rxfh()
1196 if (ret) in ethtool_set_rxfh()
1198 } else if (rxfh.indir_size == 0) { in ethtool_set_rxfh()
1199 if (rxfh.rss_context == 0) { in ethtool_set_rxfh()
1208 if (rxfh.key_size) { in ethtool_set_rxfh()
1210 if (copy_from_user(hkey, in ethtool_set_rxfh()
1218 if (rxfh.rss_context) in ethtool_set_rxfh()
1223 if (ret) in ethtool_set_rxfh()
1226 if (copy_to_user(useraddr + offsetof(struct ethtool_rxfh, rss_context), in ethtool_set_rxfh()
1230 if (!rxfh.rss_context) { in ethtool_set_rxfh()
1232 if (rxfh.indir_size == 0) in ethtool_set_rxfh()
1234 else if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) in ethtool_set_rxfh()
1250 if (!ops->get_regs || !ops->get_regs_len) in ethtool_get_regs()
1253 if (copy_from_user(®s, useraddr, sizeof(regs))) in ethtool_get_regs()
1257 if (reglen <= 0) in ethtool_get_regs()
1260 if (regs.len > reglen) in ethtool_get_regs()
1264 if (!regbuf) in ethtool_get_regs()
1267 if (regs.len < reglen) in ethtool_get_regs()
1273 if (copy_to_user(useraddr, ®s, sizeof(regs))) in ethtool_get_regs()
1276 if (copy_to_user(useraddr, regbuf, reglen)) in ethtool_get_regs()
1290 if (!dev->ethtool_ops->reset) in ethtool_reset()
1293 if (copy_from_user(&reset, useraddr, sizeof(reset))) in ethtool_reset()
1297 if (ret) in ethtool_reset()
1300 if (copy_to_user(useraddr, &reset, sizeof(reset))) in ethtool_reset()
1309 if (!dev->ethtool_ops->get_wol) in ethtool_get_wol()
1316 if (copy_to_user(useraddr, &wol, sizeof(wol))) in ethtool_get_wol()
1326 if (!dev->ethtool_ops->set_wol) in ethtool_set_wol()
1329 if (copy_from_user(&wol, useraddr, sizeof(wol))) in ethtool_set_wol()
1333 if (ret) in ethtool_set_wol()
1347 if (!dev->ethtool_ops->get_eee) in ethtool_get_eee()
1354 if (rc) in ethtool_get_eee()
1357 if (copy_to_user(useraddr, &edata, sizeof(edata))) in ethtool_get_eee()
1368 if (!dev->ethtool_ops->set_eee) in ethtool_set_eee()
1371 if (copy_from_user(&edata, useraddr, sizeof(edata))) in ethtool_set_eee()
1375 if (!ret) in ethtool_set_eee()
1382 if (!dev->ethtool_ops->nway_reset) in ethtool_nway_reset()
1393 if (link < 0) in ethtool_get_link()
1397 if (copy_to_user(useraddr, &edata, sizeof(edata))) in ethtool_get_link()
1413 if (copy_from_user(&eeprom, useraddr, sizeof(eeprom))) in ethtool_get_any_eeprom()
1417 if (eeprom.offset + eeprom.len <= eeprom.offset) in ethtool_get_any_eeprom()
1421 if (eeprom.offset + eeprom.len > total_len) in ethtool_get_any_eeprom()
1425 if (!data) in ethtool_get_any_eeprom()
1433 if (ret) in ethtool_get_any_eeprom()
1435 if (copy_to_user(userbuf, data, eeprom.len)) { in ethtool_get_any_eeprom()
1446 if (copy_to_user(useraddr, &eeprom, sizeof(eeprom))) in ethtool_get_any_eeprom()
1457 if (!ops->get_eeprom || !ops->get_eeprom_len || in ethtool_get_eeprom()
1474 if (!ops->set_eeprom || !ops->get_eeprom_len || in ethtool_set_eeprom()
1478 if (copy_from_user(&eeprom, useraddr, sizeof(eeprom))) in ethtool_set_eeprom()
1482 if (eeprom.offset + eeprom.len <= eeprom.offset) in ethtool_set_eeprom()
1486 if (eeprom.offset + eeprom.len > ops->get_eeprom_len(dev)) in ethtool_set_eeprom()
1490 if (!data) in ethtool_set_eeprom()
1497 if (copy_from_user(data, userbuf, eeprom.len)) { in ethtool_set_eeprom()
1502 if (ret) in ethtool_set_eeprom()
1519 if (!dev->ethtool_ops->get_coalesce) in ethtool_get_coalesce()
1523 if (ret) in ethtool_get_coalesce()
1526 if (copy_to_user(useraddr, &coalesce, sizeof(coalesce))) in ethtool_get_coalesce()
1538 if (coalesce->rx_coalesce_usecs) in ethtool_set_coalesce_supported()
1540 if (coalesce->rx_max_coalesced_frames) in ethtool_set_coalesce_supported()
1542 if (coalesce->rx_coalesce_usecs_irq) in ethtool_set_coalesce_supported()
1544 if (coalesce->rx_max_coalesced_frames_irq) in ethtool_set_coalesce_supported()
1546 if (coalesce->tx_coalesce_usecs) in ethtool_set_coalesce_supported()
1548 if (coalesce->tx_max_coalesced_frames) in ethtool_set_coalesce_supported()
1550 if (coalesce->tx_coalesce_usecs_irq) in ethtool_set_coalesce_supported()
1552 if (coalesce->tx_max_coalesced_frames_irq) in ethtool_set_coalesce_supported()
1554 if (coalesce->stats_block_coalesce_usecs) in ethtool_set_coalesce_supported()
1556 if (coalesce->use_adaptive_rx_coalesce) in ethtool_set_coalesce_supported()
1558 if (coalesce->use_adaptive_tx_coalesce) in ethtool_set_coalesce_supported()
1560 if (coalesce->pkt_rate_low) in ethtool_set_coalesce_supported()
1562 if (coalesce->rx_coalesce_usecs_low) in ethtool_set_coalesce_supported()
1564 if (coalesce->rx_max_coalesced_frames_low) in ethtool_set_coalesce_supported()
1566 if (coalesce->tx_coalesce_usecs_low) in ethtool_set_coalesce_supported()
1568 if (coalesce->tx_max_coalesced_frames_low) in ethtool_set_coalesce_supported()
1570 if (coalesce->pkt_rate_high) in ethtool_set_coalesce_supported()
1572 if (coalesce->rx_coalesce_usecs_high) in ethtool_set_coalesce_supported()
1574 if (coalesce->rx_max_coalesced_frames_high) in ethtool_set_coalesce_supported()
1576 if (coalesce->tx_coalesce_usecs_high) in ethtool_set_coalesce_supported()
1578 if (coalesce->tx_max_coalesced_frames_high) in ethtool_set_coalesce_supported()
1580 if (coalesce->rate_sample_interval) in ethtool_set_coalesce_supported()
1592 if (!dev->ethtool_ops->set_coalesce) in ethtool_set_coalesce()
1595 if (copy_from_user(&coalesce, useraddr, sizeof(coalesce))) in ethtool_set_coalesce()
1598 if (!ethtool_set_coalesce_supported(dev, &coalesce)) in ethtool_set_coalesce()
1602 if (!ret) in ethtool_set_coalesce()
1611 if (!dev->ethtool_ops->get_ringparam) in ethtool_get_ringparam()
1616 if (copy_to_user(useraddr, &ringparam, sizeof(ringparam))) in ethtool_get_ringparam()
1626 if (!dev->ethtool_ops->set_ringparam || !dev->ethtool_ops->get_ringparam) in ethtool_set_ringparam()
1629 if (copy_from_user(&ringparam, useraddr, sizeof(ringparam))) in ethtool_set_ringparam()
1635 if (ringparam.rx_pending > max.rx_max_pending || in ethtool_set_ringparam()
1642 if (!ret) in ethtool_set_ringparam()
1652 if (!dev->ethtool_ops->get_channels) in ethtool_get_channels()
1657 if (copy_to_user(useraddr, &channels, sizeof(channels))) in ethtool_get_channels()
1671 if (!dev->ethtool_ops->set_channels || !dev->ethtool_ops->get_channels) in ethtool_set_channels()
1674 if (copy_from_user(&channels, useraddr, sizeof(channels))) in ethtool_set_channels()
1679 if (channels.rx_count == curr.rx_count && in ethtool_set_channels()
1686 if (channels.rx_count > curr.max_rx || in ethtool_set_channels()
1693 if (!channels.combined_count && in ethtool_set_channels()
1699 if (netif_is_rxfh_configured(dev) && in ethtool_set_channels()
1709 if (xsk_get_pool_from_qid(dev, i)) in ethtool_set_channels()
1713 if (!ret) in ethtool_set_channels()
1722 if (!dev->ethtool_ops->get_pauseparam) in ethtool_get_pauseparam()
1727 if (copy_to_user(useraddr, &pauseparam, sizeof(pauseparam))) in ethtool_get_pauseparam()
1737 if (!dev->ethtool_ops->set_pauseparam) in ethtool_set_pauseparam()
1740 if (copy_from_user(&pauseparam, useraddr, sizeof(pauseparam))) in ethtool_set_pauseparam()
1744 if (!ret) in ethtool_set_pauseparam()
1756 if (!ops->self_test || !ops->get_sset_count) in ethtool_self_test()
1760 if (test_len < 0) in ethtool_self_test()
1764 if (copy_from_user(&test, useraddr, sizeof(test))) in ethtool_self_test()
1769 if (!data) in ethtool_self_test()
1777 if (copy_to_user(useraddr, &test, sizeof(test))) in ethtool_self_test()
1780 if (copy_to_user(useraddr, data, test.len * sizeof(u64))) in ethtool_self_test()
1795 if (copy_from_user(&gstrings, useraddr, sizeof(gstrings))) in ethtool_get_strings()
1799 if (ret < 0) in ethtool_get_strings()
1801 if (ret > S32_MAX / ETH_GSTRING_LEN) in ethtool_get_strings()
1807 if (gstrings.len) { in ethtool_get_strings()
1809 if (!data) in ethtool_get_strings()
1818 if (copy_to_user(useraddr, &gstrings, sizeof(gstrings))) in ethtool_get_strings()
1821 if (gstrings.len && in ethtool_get_strings()
1838 if (!ops->set_phys_id) in ethtool_phys_id()
1841 if (busy) in ethtool_phys_id()
1844 if (copy_from_user(&id, useraddr, sizeof(id))) in ethtool_phys_id()
1848 if (rc < 0) in ethtool_phys_id()
1858 if (rc == 0) { in ethtool_phys_id()
1872 if (rc) in ethtool_phys_id()
1893 if (!ops->get_ethtool_stats || !ops->get_sset_count) in ethtool_get_stats()
1897 if (n_stats < 0) in ethtool_get_stats()
1899 if (n_stats > S32_MAX / sizeof(u64)) in ethtool_get_stats()
1902 if (copy_from_user(&stats, useraddr, sizeof(stats))) in ethtool_get_stats()
1907 if (n_stats) { in ethtool_get_stats()
1909 if (!data) in ethtool_get_stats()
1917 if (copy_to_user(useraddr, &stats, sizeof(stats))) in ethtool_get_stats()
1920 if (n_stats && copy_to_user(useraddr, data, array_size(n_stats, sizeof(u64)))) in ethtool_get_stats()
1938 if (!phydev && (!ops->get_ethtool_phy_stats || !ops->get_sset_count)) in ethtool_get_phy_stats()
1941 if (dev->phydev && !ops->get_ethtool_phy_stats && in ethtool_get_phy_stats()
1946 if (n_stats < 0) in ethtool_get_phy_stats()
1948 if (n_stats > S32_MAX / sizeof(u64)) in ethtool_get_phy_stats()
1952 if (copy_from_user(&stats, useraddr, sizeof(stats))) in ethtool_get_phy_stats()
1957 if (n_stats) { in ethtool_get_phy_stats()
1959 if (!data) in ethtool_get_phy_stats()
1962 if (dev->phydev && !ops->get_ethtool_phy_stats && in ethtool_get_phy_stats()
1965 if (ret < 0) in ethtool_get_phy_stats()
1975 if (copy_to_user(useraddr, &stats, sizeof(stats))) in ethtool_get_phy_stats()
1978 if (n_stats && copy_to_user(useraddr, data, array_size(n_stats, sizeof(u64)))) in ethtool_get_phy_stats()
1991 if (copy_from_user(&epaddr, useraddr, sizeof(epaddr))) in ethtool_get_perm_addr()
1994 if (epaddr.size < dev->addr_len) in ethtool_get_perm_addr()
1998 if (copy_to_user(useraddr, &epaddr, sizeof(epaddr))) in ethtool_get_perm_addr()
2001 if (copy_to_user(useraddr, dev->perm_addr, epaddr.size)) in ethtool_get_perm_addr()
2011 if (!actor) in ethtool_get_value()
2016 if (copy_to_user(useraddr, &edata, sizeof(edata))) in ethtool_get_value()
2026 if (!actor) in ethtool_set_value_void()
2029 if (copy_from_user(&edata, useraddr, sizeof(edata))) in ethtool_set_value_void()
2041 if (!actor) in ethtool_set_value()
2044 if (copy_from_user(&edata, useraddr, sizeof(edata))) in ethtool_set_value()
2055 if (copy_from_user(&efl, useraddr, sizeof(efl))) in ethtool_flash_device()
2059 if (!dev->ethtool_ops->flash_device) in ethtool_flash_device()
2070 if (!dev->ethtool_ops->set_dump) in ethtool_set_dump()
2073 if (copy_from_user(&dump, useraddr, sizeof(dump))) in ethtool_set_dump()
2086 if (!ops->get_dump_flag) in ethtool_get_dump_flag()
2089 if (copy_from_user(&dump, useraddr, sizeof(dump))) in ethtool_get_dump_flag()
2093 if (ret) in ethtool_get_dump_flag()
2096 if (copy_to_user(useraddr, &dump, sizeof(dump))) in ethtool_get_dump_flag()
2110 if (!ops->get_dump_data || !ops->get_dump_flag) in ethtool_get_dump_data()
2113 if (copy_from_user(&dump, useraddr, sizeof(dump))) in ethtool_get_dump_data()
2119 if (ret) in ethtool_get_dump_data()
2123 if (!len) in ethtool_get_dump_data()
2136 if (!data) in ethtool_get_dump_data()
2139 if (ret) in ethtool_get_dump_data()
2145 * should be tmp.len (or len if it can do a partial dump). in ethtool_get_dump_data()
2152 if (copy_to_user(useraddr, &dump, sizeof(dump))) { in ethtool_get_dump_data()
2157 if (copy_to_user(useraddr, data, len)) in ethtool_get_dump_data()
2170 if (err) in ethtool_get_ts_info()
2173 if (copy_to_user(useraddr, &info, sizeof(info))) in ethtool_get_ts_info()
2185 if (dev->sfp_bus) in __ethtool_get_module_info()
2188 if (phydev && phydev->drv && phydev->drv->module_info) in __ethtool_get_module_info()
2191 if (ops->get_module_info) in __ethtool_get_module_info()
2203 if (copy_from_user(&modinfo, useraddr, sizeof(modinfo))) in ethtool_get_module_info()
2207 if (ret) in ethtool_get_module_info()
2210 if (copy_to_user(useraddr, &modinfo, sizeof(modinfo))) in ethtool_get_module_info()
2222 if (dev->sfp_bus) in __ethtool_get_module_eeprom()
2225 if (phydev && phydev->drv && phydev->drv->module_eeprom) in __ethtool_get_module_eeprom()
2228 if (ops->get_module_eeprom) in __ethtool_get_module_eeprom()
2241 if (ret) in ethtool_get_module_eeprom()
2254 if (tuna->len != sizeof(u32) || in ethtool_tunable_valid()
2259 if (tuna->len != sizeof(u16) || in ethtool_tunable_valid()
2277 if (!ops->get_tunable) in ethtool_get_tunable()
2279 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in ethtool_get_tunable()
2282 if (ret) in ethtool_get_tunable()
2285 if (!data) in ethtool_get_tunable()
2288 if (ret) in ethtool_get_tunable()
2292 if (copy_to_user(useraddr, data, tuna.len)) in ethtool_get_tunable()
2308 if (!ops->set_tunable) in ethtool_set_tunable()
2310 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in ethtool_set_tunable()
2313 if (ret) in ethtool_set_tunable()
2317 if (IS_ERR(data)) in ethtool_set_tunable()
2334 if (!dev->ethtool_ops->get_per_queue_coalesce) in ethtool_get_per_queue_coalesce()
2346 if (ret != 0) in ethtool_get_per_queue_coalesce()
2348 if (copy_to_user(useraddr, &coalesce, sizeof(coalesce))) in ethtool_get_per_queue_coalesce()
2367 if ((!dev->ethtool_ops->set_per_queue_coalesce) || in ethtool_set_per_queue_coalesce()
2376 if (!backup) in ethtool_set_per_queue_coalesce()
2383 if (ret != 0) in ethtool_set_per_queue_coalesce()
2388 if (copy_from_user(&coalesce, useraddr, sizeof(coalesce))) { in ethtool_set_per_queue_coalesce()
2393 if (!ethtool_set_coalesce_supported(dev, &coalesce)) { in ethtool_set_per_queue_coalesce()
2399 if (ret != 0) in ethtool_set_per_queue_coalesce()
2406 if (ret != 0) { in ethtool_set_per_queue_coalesce()
2423 if (copy_from_user(&per_queue_opt, useraddr, sizeof(per_queue_opt))) in ethtool_set_per_queue()
2426 if (per_queue_opt.sub_command != sub_cmd) in ethtool_set_per_queue()
2444 if (tuna->len != sizeof(u8) || in ethtool_phy_tunable_valid()
2449 if (tuna->len != sizeof(u16) || in ethtool_phy_tunable_valid()
2469 if (!phy_drv_tunable && !dev->ethtool_ops->get_phy_tunable) in get_phy_tunable()
2471 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in get_phy_tunable()
2474 if (ret) in get_phy_tunable()
2477 if (!data) in get_phy_tunable()
2479 if (phy_drv_tunable) { in get_phy_tunable()
2486 if (ret) in get_phy_tunable()
2490 if (copy_to_user(useraddr, data, tuna.len)) in get_phy_tunable()
2508 if (!phy_drv_tunable && !dev->ethtool_ops->set_phy_tunable) in set_phy_tunable()
2510 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in set_phy_tunable()
2513 if (ret) in set_phy_tunable()
2517 if (IS_ERR(data)) in set_phy_tunable()
2519 if (phy_drv_tunable) { in set_phy_tunable()
2536 if (!dev->ethtool_ops->get_fecparam) in ethtool_get_fecparam()
2540 if (rc) in ethtool_get_fecparam()
2543 if (copy_to_user(useraddr, &fecparam, sizeof(fecparam))) in ethtool_get_fecparam()
2552 if (!dev->ethtool_ops->set_fecparam) in ethtool_set_fecparam()
2555 if (copy_from_user(&fecparam, useraddr, sizeof(fecparam))) in ethtool_set_fecparam()
2571 if (!dev || !netif_device_present(dev)) in dev_ethtool()
2574 if (copy_from_user(ðcmd, useraddr, sizeof(ethcmd))) in dev_ethtool()
2577 if (ethcmd == ETHTOOL_PERQUEUE) { in dev_ethtool()
2578 if (copy_from_user(&sub_cmd, useraddr + sizeof(ethcmd), sizeof(sub_cmd))) in dev_ethtool()
2623 if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) in dev_ethtool()
2627 if (dev->ethtool_ops->begin) { in dev_ethtool()
2629 if (rc < 0) in dev_ethtool()
2660 if (!rc) in dev_ethtool()
2724 if (!rc) in dev_ethtool()
2844 if (dev->ethtool_ops->complete) in dev_ethtool()
2847 if (old_features != dev->features) in dev_ethtool()
2882 if (!flow) in ethtool_rx_flow_rule_create()
2887 if (!flow->rule) { in ethtool_rx_flow_rule_create()
2906 if (!is_zero_ether_addr(ether_m_spec->h_source)) { in ethtool_rx_flow_rule_create()
2912 if (!is_zero_ether_addr(ether_m_spec->h_dest)) { in ethtool_rx_flow_rule_create()
2918 if (ether_m_spec->h_proto) { in ethtool_rx_flow_rule_create()
2933 if (v4_m_spec->ip4src) { in ethtool_rx_flow_rule_create()
2937 if (v4_m_spec->ip4dst) { in ethtool_rx_flow_rule_create()
2941 if (v4_m_spec->ip4src || in ethtool_rx_flow_rule_create()
2948 if (v4_m_spec->psrc) { in ethtool_rx_flow_rule_create()
2952 if (v4_m_spec->pdst) { in ethtool_rx_flow_rule_create()
2956 if (v4_m_spec->psrc || in ethtool_rx_flow_rule_create()
2963 if (v4_m_spec->tos) { in ethtool_rx_flow_rule_create()
2981 if (memcmp(v6_m_spec->ip6src, &zero_addr, sizeof(zero_addr))) { in ethtool_rx_flow_rule_create()
2987 if (memcmp(v6_m_spec->ip6dst, &zero_addr, sizeof(zero_addr))) { in ethtool_rx_flow_rule_create()
2993 if (memcmp(v6_m_spec->ip6src, &zero_addr, sizeof(zero_addr)) || in ethtool_rx_flow_rule_create()
3000 if (v6_m_spec->psrc) { in ethtool_rx_flow_rule_create()
3004 if (v6_m_spec->pdst) { in ethtool_rx_flow_rule_create()
3008 if (v6_m_spec->psrc || in ethtool_rx_flow_rule_create()
3015 if (v6_m_spec->tclass) { in ethtool_rx_flow_rule_create()
3047 if (fs->flow_type & FLOW_EXT) { in ethtool_rx_flow_rule_create()
3051 if (ext_m_spec->vlan_etype) { in ethtool_rx_flow_rule_create()
3056 if (ext_m_spec->vlan_tci) { in ethtool_rx_flow_rule_create()
3073 if (ext_m_spec->vlan_etype || in ethtool_rx_flow_rule_create()
3081 if (fs->flow_type & FLOW_MAC_EXT) { in ethtool_rx_flow_rule_create()
3106 if (fs->flow_type & FLOW_RSS) in ethtool_rx_flow_rule_create()