You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[ETHTOOL] Provide default behaviors for a few ethtool sub-ioctls
For the operations get-tx-csum get-sg get-tso get-ufo the default ethtool_op_xxx behavior is fine for all drivers, so we permit op==NULL to imply the default behavior. This provides a more uniform behavior across all drivers, eliminating ethtool(8) "ioctl not supported" errors on older drivers that had not been updated for the latest sub-ioctls. The ethtool_op_xxx() functions are left exported, in case anyone wishes to call them directly from a driver-private implementation -- a not-uncommon case. Should an ethtool_op_xxx() helper remain unused for a while, except by net/core/ethtool.c, we can un-export it at a later date. [ Resolved conflicts with set/get value ethtool patch... -DaveM ] Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
09f75cd7bf
commit
88d3aafdae
@@ -1572,11 +1572,8 @@ static const struct ethtool_ops cp_ethtool_ops = {
|
||||
.set_msglevel = cp_set_msglevel,
|
||||
.get_rx_csum = cp_get_rx_csum,
|
||||
.set_rx_csum = cp_set_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_csum, /* local! */
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
.get_regs = cp_get_regs,
|
||||
.get_wol = cp_get_wol,
|
||||
|
||||
@@ -489,15 +489,12 @@ const struct ethtool_ops atl1_ethtool_ops = {
|
||||
.get_pauseparam = atl1_get_pauseparam,
|
||||
.set_pauseparam = atl1_set_pauseparam,
|
||||
.get_rx_csum = atl1_get_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_hw_csum,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_strings = atl1_get_strings,
|
||||
.nway_reset = atl1_nway_reset,
|
||||
.get_ethtool_stats = atl1_get_ethtool_stats,
|
||||
.get_stats_count = atl1_get_stats_count,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
};
|
||||
|
||||
@@ -6257,11 +6257,8 @@ static const struct ethtool_ops bnx2_ethtool_ops = {
|
||||
.set_pauseparam = bnx2_set_pauseparam,
|
||||
.get_rx_csum = bnx2_get_rx_csum,
|
||||
.set_rx_csum = bnx2_set_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = bnx2_set_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = bnx2_set_tso,
|
||||
.self_test_count = bnx2_self_test_count,
|
||||
.self_test = bnx2_self_test,
|
||||
|
||||
@@ -4202,10 +4202,6 @@ static void bond_ethtool_get_drvinfo(struct net_device *bond_dev,
|
||||
}
|
||||
|
||||
static const struct ethtool_ops bond_ethtool_ops = {
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.get_ufo = ethtool_op_get_ufo,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_drvinfo = bond_ethtool_get_drvinfo,
|
||||
};
|
||||
|
||||
|
||||
@@ -794,9 +794,7 @@ static const struct ethtool_ops t1_ethtool_ops = {
|
||||
.set_pauseparam = set_pauseparam,
|
||||
.get_rx_csum = get_rx_csum,
|
||||
.set_rx_csum = set_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_strings = get_strings,
|
||||
@@ -804,7 +802,6 @@ static const struct ethtool_ops t1_ethtool_ops = {
|
||||
.get_ethtool_stats = get_stats,
|
||||
.get_regs_len = get_regs_len,
|
||||
.get_regs = get_regs,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = set_tso,
|
||||
};
|
||||
|
||||
|
||||
@@ -1634,9 +1634,7 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
|
||||
.set_pauseparam = set_pauseparam,
|
||||
.get_rx_csum = get_rx_csum,
|
||||
.set_rx_csum = set_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_strings = get_strings,
|
||||
@@ -1647,7 +1645,6 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
|
||||
.get_regs_len = get_regs_len,
|
||||
.get_regs = get_regs,
|
||||
.get_wol = get_wol,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
};
|
||||
|
||||
|
||||
@@ -1965,9 +1965,7 @@ static const struct ethtool_ops e1000_ethtool_ops = {
|
||||
.set_rx_csum = e1000_set_rx_csum,
|
||||
.get_tx_csum = e1000_get_tx_csum,
|
||||
.set_tx_csum = e1000_set_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = e1000_set_tso,
|
||||
.self_test_count = e1000_diag_test_count,
|
||||
.self_test = e1000_diag_test,
|
||||
|
||||
@@ -262,9 +262,6 @@ const struct ethtool_ops ehea_ethtool_ops = {
|
||||
.get_msglevel = ehea_get_msglevel,
|
||||
.set_msglevel = ehea_set_msglevel,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
.get_strings = ehea_get_strings,
|
||||
.get_stats_count = ehea_get_stats_count,
|
||||
|
||||
@@ -1494,8 +1494,6 @@ static const struct ethtool_ops netdev_ethtool_ops = {
|
||||
.get_link = netdev_get_link,
|
||||
.get_msglevel = netdev_get_msglevel,
|
||||
.set_msglevel = netdev_set_msglevel,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.begin = ethtool_begin,
|
||||
.complete = ethtool_complete
|
||||
};
|
||||
|
||||
@@ -1891,8 +1891,6 @@ static const struct ethtool_ops netdev_ethtool_ops = {
|
||||
.get_link = netdev_get_link,
|
||||
.get_msglevel = netdev_get_msglevel,
|
||||
.set_msglevel = netdev_set_msglevel,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
};
|
||||
|
||||
static int mii_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
||||
|
||||
@@ -1041,9 +1041,7 @@ static const struct ethtool_ops fec_ethtool_ops = {
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_msglevel = fec_get_msglevel,
|
||||
.set_msglevel = fec_set_msglevel,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_csum, /* local! */
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_regs = fec_get_regs,
|
||||
};
|
||||
|
||||
@@ -4710,7 +4710,6 @@ static const struct ethtool_ops ops = {
|
||||
.get_regs_len = nv_get_regs_len,
|
||||
.get_regs = nv_get_regs,
|
||||
.nway_reset = nv_nway_reset,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = nv_set_tso,
|
||||
.get_ringparam = nv_get_ringparam,
|
||||
.set_ringparam = nv_set_ringparam,
|
||||
@@ -4718,9 +4717,7 @@ static const struct ethtool_ops ops = {
|
||||
.set_pauseparam = nv_set_pauseparam,
|
||||
.get_rx_csum = nv_get_rx_csum,
|
||||
.set_rx_csum = nv_set_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = nv_set_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = nv_set_sg,
|
||||
.get_strings = nv_get_strings,
|
||||
.get_stats_count = nv_get_stats_count,
|
||||
|
||||
@@ -907,9 +907,7 @@ static const struct ethtool_ops fs_ethtool_ops = {
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_msglevel = fs_get_msglevel,
|
||||
.set_msglevel = fs_set_msglevel,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_csum, /* local! */
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_regs = fs_get_regs,
|
||||
};
|
||||
|
||||
@@ -1900,8 +1900,6 @@ static const struct ethtool_ops emac_ethtool_ops = {
|
||||
.get_ethtool_stats = emac_ethtool_get_ethtool_stats,
|
||||
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
};
|
||||
|
||||
static int emac_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
|
||||
|
||||
@@ -821,15 +821,11 @@ static const struct ethtool_ops netdev_ethtool_ops = {
|
||||
.get_drvinfo = netdev_get_drvinfo,
|
||||
.get_settings = netdev_get_settings,
|
||||
.get_link = netdev_get_link,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ibmveth_set_tx_csum,
|
||||
.get_rx_csum = ibmveth_get_rx_csum,
|
||||
.set_rx_csum = ibmveth_set_rx_csum,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.get_ufo = ethtool_op_get_ufo,
|
||||
.get_strings = ibmveth_get_strings,
|
||||
.get_stats_count = ibmveth_get_stats_count,
|
||||
.get_stats_count = ibmveth_get_stats_count,
|
||||
.get_ethtool_stats = ibmveth_get_ethtool_stats,
|
||||
};
|
||||
|
||||
|
||||
@@ -713,11 +713,9 @@ static const struct ethtool_ops ixgb_ethtool_ops = {
|
||||
.set_rx_csum = ixgb_set_rx_csum,
|
||||
.get_tx_csum = ixgb_get_tx_csum,
|
||||
.set_tx_csum = ixgb_set_tx_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_msglevel = ixgb_get_msglevel,
|
||||
.set_msglevel = ixgb_set_msglevel,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ixgb_set_tso,
|
||||
.get_strings = ixgb_get_strings,
|
||||
.phys_id = ixgb_phys_id,
|
||||
|
||||
@@ -192,7 +192,6 @@ static u32 always_on(struct net_device *dev)
|
||||
|
||||
static const struct ethtool_ops loopback_ethtool_ops = {
|
||||
.get_link = always_on,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
.get_tx_csum = always_on,
|
||||
.get_sg = always_on,
|
||||
|
||||
@@ -282,10 +282,6 @@ static u32 macvlan_ethtool_get_rx_csum(struct net_device *dev)
|
||||
static const struct ethtool_ops macvlan_ethtool_ops = {
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_rx_csum = macvlan_ethtool_get_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.get_ufo = ethtool_op_get_ufo,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_drvinfo = macvlan_ethtool_get_drvinfo,
|
||||
};
|
||||
|
||||
|
||||
@@ -2735,7 +2735,6 @@ static const struct ethtool_ops mv643xx_ethtool_ops = {
|
||||
.set_settings = mv643xx_set_settings,
|
||||
.get_drvinfo = mv643xx_get_drvinfo,
|
||||
.get_link = mv643xx_eth_get_link,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_stats_count = mv643xx_get_stats_count,
|
||||
.get_ethtool_stats = mv643xx_get_ethtool_stats,
|
||||
|
||||
@@ -1499,11 +1499,8 @@ static const struct ethtool_ops myri10ge_ethtool_ops = {
|
||||
.get_ringparam = myri10ge_get_ringparam,
|
||||
.get_rx_csum = myri10ge_get_rx_csum,
|
||||
.set_rx_csum = myri10ge_set_rx_csum,
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.set_tx_csum = ethtool_op_set_tx_hw_csum,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_strings = myri10ge_get_strings,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user