]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ethtool: extend ringparam setting/getting API with rx_buf_len
authorHao Chen <chenhao288@hisilicon.com>
Thu, 18 Nov 2021 12:12:43 +0000 (20:12 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Nov 2021 12:31:49 +0000 (12:31 +0000)
Add two new parameters kernel_ringparam and extack for
.get_ringparam and .set_ringparam to extend more ring params
through netlink.

Signed-off-by: Hao Chen <chenhao288@hisilicon.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
99 files changed:
arch/um/drivers/vector_kern.c
drivers/net/can/c_can/c_can_ethtool.c
drivers/net/ethernet/3com/typhoon.c
drivers/net/ethernet/amazon/ena/ena_ethtool.c
drivers/net/ethernet/amd/pcnet32.c
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
drivers/net/ethernet/atheros/atlx/atl1.c
drivers/net/ethernet/broadcom/b44.c
drivers/net/ethernet/broadcom/bcm63xx_enet.c
drivers/net/ethernet/broadcom/bnx2.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
drivers/net/ethernet/broadcom/tg3.c
drivers/net/ethernet/brocade/bna/bnad_ethtool.c
drivers/net/ethernet/cadence/macb_main.c
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
drivers/net/ethernet/chelsio/cxgb/cxgb2.c
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
drivers/net/ethernet/cisco/enic/enic_ethtool.c
drivers/net/ethernet/cortina/gemini.c
drivers/net/ethernet/emulex/benet/be_ethtool.c
drivers/net/ethernet/ethoc.c
drivers/net/ethernet/faraday/ftgmac100.c
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
drivers/net/ethernet/freescale/gianfar_ethtool.c
drivers/net/ethernet/freescale/ucc_geth_ethtool.c
drivers/net/ethernet/google/gve/gve_ethtool.c
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
drivers/net/ethernet/ibm/emac/core.c
drivers/net/ethernet/ibm/ibmvnic.c
drivers/net/ethernet/intel/e100.c
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
drivers/net/ethernet/intel/e1000e/ethtool.c
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
drivers/net/ethernet/intel/ice/ice_ethtool.c
drivers/net/ethernet/intel/igb/igb_ethtool.c
drivers/net/ethernet/intel/igbvf/ethtool.c
drivers/net/ethernet/intel/igc/igc_ethtool.c
drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
drivers/net/ethernet/intel/ixgbevf/ethtool.c
drivers/net/ethernet/marvell/mv643xx_eth.c
drivers/net/ethernet/marvell/mvneta.c
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
drivers/net/ethernet/marvell/skge.c
drivers/net/ethernet/marvell/sky2.c
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ethtool.c
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_ethtool.c
drivers/net/ethernet/micrel/ksz884x.c
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
drivers/net/ethernet/neterion/s2io.c
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
drivers/net/ethernet/nvidia/forcedeth.c
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
drivers/net/ethernet/pasemi/pasemi_mac_ethtool.c
drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
drivers/net/ethernet/qualcomm/emac/emac-ethtool.c
drivers/net/ethernet/qualcomm/qca_debug.c
drivers/net/ethernet/realtek/8139cp.c
drivers/net/ethernet/realtek/r8169_main.c
drivers/net/ethernet/renesas/ravb_main.c
drivers/net/ethernet/renesas/sh_eth.c
drivers/net/ethernet/sfc/ef100_ethtool.c
drivers/net/ethernet/sfc/ethtool.c
drivers/net/ethernet/sfc/falcon/ethtool.c
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
drivers/net/ethernet/tehuti/tehuti.c
drivers/net/ethernet/ti/am65-cpsw-ethtool.c
drivers/net/ethernet/ti/cpmac.c
drivers/net/ethernet/ti/cpsw_ethtool.c
drivers/net/ethernet/ti/cpsw_priv.h
drivers/net/ethernet/toshiba/spider_net_ethtool.c
drivers/net/ethernet/xilinx/ll_temac_main.c
drivers/net/ethernet/xilinx/xilinx_axienet_main.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/netdevsim/ethtool.c
drivers/net/usb/r8152.c
drivers/net/virtio_net.c
drivers/net/vmxnet3/vmxnet3_ethtool.c
drivers/s390/net/qeth_ethtool.c
include/linux/ethtool.h
net/ethtool/ioctl.c
net/ethtool/rings.c
net/mac80211/ethtool.c

index cde6db184c26b4601ac339afda94a287d3b9313f..4fc1a5d70dcf31fd11a8a479112fbef662ea4921 100644 (file)
@@ -1441,7 +1441,9 @@ flash_fail:
 }
 
 static void vector_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct vector_private *vp = netdev_priv(netdev);
 
index 377c7d2e761207a01aac4ef5ae92ee5323ebffd3..6655146294fcdc3c8dc6ffc266dfa1c99c000def 100644 (file)
@@ -20,7 +20,9 @@ static void c_can_get_drvinfo(struct net_device *netdev,
 }
 
 static void c_can_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct c_can_priv *priv = netdev_priv(netdev);
 
index 05e15b6e5e2c728e54c48aa113572433a3e0b6f1..481f1df3106c462a5551103d380dd45583665f52 100644 (file)
@@ -1138,7 +1138,9 @@ typhoon_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
 }
 
 static void
-typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
+typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering,
+                     struct kernel_ethtool_ringparam *kernel_ering,
+                     struct netlink_ext_ack *extack)
 {
        ering->rx_max_pending = RXENT_ENTRIES;
        ering->tx_max_pending = TXLO_ENTRIES - 1;
index 13e745cf3781b2e58d1e4af6716fa5361dc5db77..6b9b43e422c1ef897b3fc8e2fcd153a931b71cd6 100644 (file)
@@ -465,7 +465,9 @@ static void ena_get_drvinfo(struct net_device *dev,
 }
 
 static void ena_get_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct ena_adapter *adapter = netdev_priv(netdev);
 
@@ -476,7 +478,9 @@ static void ena_get_ringparam(struct net_device *netdev,
 }
 
 static int ena_set_ringparam(struct net_device *netdev,
-                            struct ethtool_ringparam *ring)
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct ena_adapter *adapter = netdev_priv(netdev);
        u32 new_tx_size, new_rx_size;
index f5c50ff377ff70b44c4cc5a475c13ea2b7a3cea0..c20c369c7eb84f0516f76487762bb12ff9c6b8f7 100644 (file)
@@ -860,7 +860,9 @@ static int pcnet32_nway_reset(struct net_device *dev)
 }
 
 static void pcnet32_get_ringparam(struct net_device *dev,
-                                 struct ethtool_ringparam *ering)
+                                 struct ethtool_ringparam *ering,
+                                 struct kernel_ethtool_ringparam *kernel_ering,
+                                 struct netlink_ext_ack *extack)
 {
        struct pcnet32_private *lp = netdev_priv(dev);
 
@@ -871,7 +873,9 @@ static void pcnet32_get_ringparam(struct net_device *dev,
 }
 
 static int pcnet32_set_ringparam(struct net_device *dev,
-                                struct ethtool_ringparam *ering)
+                                struct ethtool_ringparam *ering,
+                                struct kernel_ethtool_ringparam *kernel_ering,
+                                struct netlink_ext_ack *extack)
 {
        struct pcnet32_private *lp = netdev_priv(dev);
        unsigned long flags;
index 94879cf8b42001d0e89d371e08e41dd8c8125a8c..6ceb1cdf6ebac698f66aa4e8f4864dd41aa1c732 100644 (file)
@@ -619,8 +619,11 @@ static int xgbe_get_module_eeprom(struct net_device *netdev,
        return pdata->phy_if.module_eeprom(pdata, eeprom, data);
 }
 
-static void xgbe_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ringparam)
+static void
+xgbe_get_ringparam(struct net_device *netdev,
+                  struct ethtool_ringparam *ringparam,
+                  struct kernel_ethtool_ringparam *kernel_ringparam,
+                  struct netlink_ext_ack *extack)
 {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
 
@@ -631,7 +634,9 @@ static void xgbe_get_ringparam(struct net_device *netdev,
 }
 
 static int xgbe_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ringparam)
+                             struct ethtool_ringparam *ringparam,
+                             struct kernel_ethtool_ringparam *kernel_ringparam,
+                             struct netlink_ext_ack *extack)
 {
        struct xgbe_prv_data *pdata = netdev_priv(netdev);
        unsigned int rx, tx;
index a9ef0544e30f0b9b428756ffeab74a2de8139703..a418238f63095017710582e62749e6f234159929 100644 (file)
@@ -812,7 +812,9 @@ static int aq_ethtool_set_pauseparam(struct net_device *ndev,
 }
 
 static void aq_get_ringparam(struct net_device *ndev,
-                            struct ethtool_ringparam *ring)
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct aq_nic_s *aq_nic = netdev_priv(ndev);
        struct aq_nic_cfg_s *cfg;
@@ -827,7 +829,9 @@ static void aq_get_ringparam(struct net_device *ndev,
 }
 
 static int aq_set_ringparam(struct net_device *ndev,
-                           struct ethtool_ringparam *ring)
+                           struct ethtool_ringparam *ring,
+                           struct kernel_ethtool_ringparam *kernel_ring,
+                           struct netlink_ext_ack *extack)
 {
        struct aq_nic_s *aq_nic = netdev_priv(ndev);
        const struct aq_hw_caps_s *hw_caps;
index b4c9e805e98106791421a17b60173960571ccad4..6a969969d221b46d552c23e015f03aa622eeb289 100644 (file)
@@ -3438,7 +3438,9 @@ static void atl1_get_regs(struct net_device *netdev, struct ethtool_regs *regs,
 }
 
 static void atl1_get_ringparam(struct net_device *netdev,
-       struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct atl1_adapter *adapter = netdev_priv(netdev);
        struct atl1_tpd_ring *txdr = &adapter->tpd_ring;
@@ -3451,7 +3453,9 @@ static void atl1_get_ringparam(struct net_device *netdev,
 }
 
 static int atl1_set_ringparam(struct net_device *netdev,
-       struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct atl1_adapter *adapter = netdev_priv(netdev);
        struct atl1_tpd_ring *tpdr = &adapter->tpd_ring;
index 969591bbc06636413ee7603b64e95552f6da6332..e5857e88c20765cfa2f9065311b812aa9b64f04b 100644 (file)
@@ -1961,7 +1961,9 @@ static int b44_set_link_ksettings(struct net_device *dev,
 }
 
 static void b44_get_ringparam(struct net_device *dev,
-                             struct ethtool_ringparam *ering)
+                             struct ethtool_ringparam *ering,
+                             struct kernel_ethtool_ringparam *kernel_ering,
+                             struct netlink_ext_ack *extack)
 {
        struct b44 *bp = netdev_priv(dev);
 
@@ -1972,7 +1974,9 @@ static void b44_get_ringparam(struct net_device *dev,
 }
 
 static int b44_set_ringparam(struct net_device *dev,
-                            struct ethtool_ringparam *ering)
+                            struct ethtool_ringparam *ering,
+                            struct kernel_ethtool_ringparam *kernel_ering,
+                            struct netlink_ext_ack *extack)
 {
        struct b44 *bp = netdev_priv(dev);
 
index a568994a03a632c6ca8176de9c4b27e806d15928..b04e423c446a3e8d883cb4e0db09f04170503c55 100644 (file)
@@ -1497,8 +1497,11 @@ static int bcm_enet_set_link_ksettings(struct net_device *dev,
        }
 }
 
-static void bcm_enet_get_ringparam(struct net_device *dev,
-                                  struct ethtool_ringparam *ering)
+static void
+bcm_enet_get_ringparam(struct net_device *dev,
+                      struct ethtool_ringparam *ering,
+                      struct kernel_ethtool_ringparam *kernel_ering,
+                      struct netlink_ext_ack *extack)
 {
        struct bcm_enet_priv *priv;
 
@@ -1512,7 +1515,9 @@ static void bcm_enet_get_ringparam(struct net_device *dev,
 }
 
 static int bcm_enet_set_ringparam(struct net_device *dev,
-                                 struct ethtool_ringparam *ering)
+                                 struct ethtool_ringparam *ering,
+                                 struct kernel_ethtool_ringparam *kernel_ering,
+                                 struct netlink_ext_ack *extack)
 {
        struct bcm_enet_priv *priv;
        int was_running;
@@ -2579,8 +2584,11 @@ static void bcm_enetsw_get_ethtool_stats(struct net_device *netdev,
        }
 }
 
-static void bcm_enetsw_get_ringparam(struct net_device *dev,
-                                    struct ethtool_ringparam *ering)
+static void
+bcm_enetsw_get_ringparam(struct net_device *dev,
+                        struct ethtool_ringparam *ering,
+                        struct kernel_ethtool_ringparam *kernel_ering,
+                        struct netlink_ext_ack *extack)
 {
        struct bcm_enet_priv *priv;
 
@@ -2595,8 +2603,11 @@ static void bcm_enetsw_get_ringparam(struct net_device *dev,
        ering->tx_pending = priv->tx_ring_size;
 }
 
-static int bcm_enetsw_set_ringparam(struct net_device *dev,
-                                   struct ethtool_ringparam *ering)
+static int
+bcm_enetsw_set_ringparam(struct net_device *dev,
+                        struct ethtool_ringparam *ering,
+                        struct kernel_ethtool_ringparam *kernel_ering,
+                        struct netlink_ext_ack *extack)
 {
        struct bcm_enet_priv *priv;
        int was_running;
index babc955ba64e261c06248c5c885a2ecbd4dd4541..e20aafeb4ca953b6f3c35d947a1bf3d9b27d61f0 100644 (file)
@@ -7318,7 +7318,9 @@ static int bnx2_set_coalesce(struct net_device *dev,
 }
 
 static void
-bnx2_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
+bnx2_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering,
+                  struct kernel_ethtool_ringparam *kernel_ering,
+                  struct netlink_ext_ack *extack)
 {
        struct bnx2 *bp = netdev_priv(dev);
 
@@ -7389,7 +7391,9 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx, bool reset_irq)
 }
 
 static int
-bnx2_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
+bnx2_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering,
+                  struct kernel_ethtool_ringparam *kernel_ering,
+                  struct netlink_ext_ack *extack)
 {
        struct bnx2 *bp = netdev_priv(dev);
        int rc;
index 472a3a478038ae9af1ceccf1cf10fb14f4383ede..0e319ac7799f93cffeb8fda8da2ff60a912cb5c4 100644 (file)
@@ -1914,7 +1914,9 @@ static int bnx2x_set_coalesce(struct net_device *dev,
 }
 
 static void bnx2x_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *ering)
+                               struct ethtool_ringparam *ering,
+                               struct kernel_ethtool_ringparam *kernel_ering,
+                               struct netlink_ext_ack *extack)
 {
        struct bnx2x *bp = netdev_priv(dev);
 
@@ -1938,7 +1940,9 @@ static void bnx2x_get_ringparam(struct net_device *dev,
 }
 
 static int bnx2x_set_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *ering)
+                              struct ethtool_ringparam *ering,
+                              struct kernel_ethtool_ringparam *kernel_ering,
+                              struct netlink_ext_ack *extack)
 {
        struct bnx2x *bp = netdev_priv(dev);
 
index 8188d55722e4b3f6e207eb8e8b3aaee4d3b07e72..15253396096a1d68ed12ace6f847ea42a80ad296 100644 (file)
@@ -775,7 +775,9 @@ skip_tpa_stats:
 }
 
 static void bnxt_get_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *ering)
+                              struct ethtool_ringparam *ering,
+                              struct kernel_ethtool_ringparam *kernel_ering,
+                              struct netlink_ext_ack *extack)
 {
        struct bnxt *bp = netdev_priv(dev);
 
@@ -794,7 +796,9 @@ static void bnxt_get_ringparam(struct net_device *dev,
 }
 
 static int bnxt_set_ringparam(struct net_device *dev,
-                             struct ethtool_ringparam *ering)
+                             struct ethtool_ringparam *ering,
+                             struct kernel_ethtool_ringparam *kernel_ering,
+                             struct netlink_ext_ack *extack)
 {
        struct bnxt *bp = netdev_priv(dev);
 
index 85ca3909859d2d4f5d8f08f030c7d0b811af1bf6..283f3c1f119507b04cf8820e34cd7f5b9e434c05 100644 (file)
@@ -12390,7 +12390,10 @@ static int tg3_nway_reset(struct net_device *dev)
        return r;
 }
 
-static void tg3_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
+static void tg3_get_ringparam(struct net_device *dev,
+                             struct ethtool_ringparam *ering,
+                             struct kernel_ethtool_ringparam *kernel_ering,
+                             struct netlink_ext_ack *extack)
 {
        struct tg3 *tp = netdev_priv(dev);
 
@@ -12411,7 +12414,10 @@ static void tg3_get_ringparam(struct net_device *dev, struct ethtool_ringparam *
        ering->tx_pending = tp->napi[0].tx_pending;
 }
 
-static int tg3_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
+static int tg3_set_ringparam(struct net_device *dev,
+                            struct ethtool_ringparam *ering,
+                            struct kernel_ethtool_ringparam *kernel_ering,
+                            struct netlink_ext_ack *extack)
 {
        struct tg3 *tp = netdev_priv(dev);
        int i, irq_sync = 0, err = 0;
index 391b85f25141f8fb687626cd2bc15bc106bcf25e..4b4ad731897f6b3c2eb7cca742e104c1bfe1a3e4 100644 (file)
@@ -405,7 +405,9 @@ static int bnad_set_coalesce(struct net_device *netdev,
 
 static void
 bnad_get_ringparam(struct net_device *netdev,
-                  struct ethtool_ringparam *ringparam)
+                  struct ethtool_ringparam *ringparam,
+                  struct kernel_ethtool_ringparam *kernel_ringparam,
+                  struct netlink_ext_ack *extack)
 {
        struct bnad *bnad = netdev_priv(netdev);
 
@@ -418,7 +420,9 @@ bnad_get_ringparam(struct net_device *netdev,
 
 static int
 bnad_set_ringparam(struct net_device *netdev,
-                  struct ethtool_ringparam *ringparam)
+                  struct ethtool_ringparam *ringparam,
+                  struct kernel_ethtool_ringparam *kernel_ringparam,
+                  struct netlink_ext_ack *extack)
 {
        int i, current_err, err = 0;
        struct bnad *bnad = netdev_priv(netdev);
index 57c5f48d19a47f31d26341ae4dbd95290b50110d..7b68f5a1720c4eee079d8ee65d1a97e6e181db78 100644 (file)
@@ -3135,7 +3135,9 @@ static int macb_set_link_ksettings(struct net_device *netdev,
 }
 
 static void macb_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct macb *bp = netdev_priv(netdev);
 
@@ -3147,7 +3149,9 @@ static void macb_get_ringparam(struct net_device *netdev,
 }
 
 static int macb_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct macb *bp = netdev_priv(netdev);
        u32 new_rx_size, new_tx_size;
index 2b9747867d4cf56284024a835a17240ea308a752..2c10ae3f7fc143f3e3fe048f5395fe6ebbdbe135 100644 (file)
@@ -947,7 +947,9 @@ static int lio_set_phys_id(struct net_device *netdev,
 
 static void
 lio_ethtool_get_ringparam(struct net_device *netdev,
-                         struct ethtool_ringparam *ering)
+                         struct ethtool_ringparam *ering,
+                         struct kernel_ethtool_ringparam *kernel_ering,
+                         struct netlink_ext_ack *extack)
 {
        struct lio *lio = GET_LIO(netdev);
        struct octeon_device *oct = lio->oct_dev;
@@ -1252,8 +1254,11 @@ static int lio_reset_queues(struct net_device *netdev, uint32_t num_qs)
        return 0;
 }
 
-static int lio_ethtool_set_ringparam(struct net_device *netdev,
-                                    struct ethtool_ringparam *ering)
+static int
+lio_ethtool_set_ringparam(struct net_device *netdev,
+                         struct ethtool_ringparam *ering,
+                         struct kernel_ethtool_ringparam *kernel_ering,
+                         struct netlink_ext_ack *extack)
 {
        u32 rx_count, tx_count, rx_count_old, tx_count_old;
        struct lio *lio = GET_LIO(netdev);
index 7f2882109b16147aed7aa61e7e4d5f5627713b11..5a9fad61e9eacd662545d090f28769983100f0f7 100644 (file)
@@ -467,7 +467,9 @@ static int nicvf_get_coalesce(struct net_device *netdev,
 }
 
 static void nicvf_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct nicvf *nic = netdev_priv(netdev);
        struct queue_set *qs = nic->qs;
@@ -479,7 +481,9 @@ static void nicvf_get_ringparam(struct net_device *netdev,
 }
 
 static int nicvf_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct nicvf *nic = netdev_priv(netdev);
        struct queue_set *qs = nic->qs;
index 609820e214a343804e2639506ded0cf4dda2e3a5..18acd7cf3d6ddfdf59e314d40e64a55e2e402bf3 100644 (file)
@@ -710,7 +710,9 @@ static int set_pauseparam(struct net_device *dev,
        return 0;
 }
 
-static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
+static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e,
+                         struct kernel_ethtool_ringparam *kernel_e,
+                         struct netlink_ext_ack *extack)
 {
        struct adapter *adapter = dev->ml_priv;
        int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
@@ -724,7 +726,9 @@ static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
        e->tx_pending = adapter->params.sge.cmdQ_size[0];
 }
 
-static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
+static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e,
+                        struct kernel_ethtool_ringparam *kernel_e,
+                        struct netlink_ext_ack *extack)
 {
        struct adapter *adapter = dev->ml_priv;
        int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
index bfffcaeee62413ad64fc0060fd5fce5e0d49fbd0..e2637bd2f4230d7e6613225419af2bf967e39fce 100644 (file)
@@ -1948,7 +1948,9 @@ static int set_pauseparam(struct net_device *dev,
        return 0;
 }
 
-static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
+static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e,
+                         struct kernel_ethtool_ringparam *kernel_e,
+                         struct netlink_ext_ack *extack)
 {
        struct port_info *pi = netdev_priv(dev);
        struct adapter *adapter = pi->adapter;
@@ -1964,7 +1966,9 @@ static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
        e->tx_pending = q->txq_size[0];
 }
 
-static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
+static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e,
+                        struct kernel_ethtool_ringparam *kernel_e,
+                        struct netlink_ext_ack *extack)
 {
        struct port_info *pi = netdev_priv(dev);
        struct adapter *adapter = pi->adapter;
index 129352bbe1143b713a51b8570fbd22556fef56eb..0e4ec4079741c6c0fbeff4b384b1519150c77b47 100644 (file)
@@ -890,7 +890,9 @@ static int set_pauseparam(struct net_device *dev,
        return 0;
 }
 
-static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
+static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e,
+                         struct kernel_ethtool_ringparam *kernel_e,
+                         struct netlink_ext_ack *extack)
 {
        const struct port_info *pi = netdev_priv(dev);
        const struct sge *s = &pi->adapter->sge;
@@ -906,7 +908,9 @@ static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
        e->tx_pending = s->ethtxq[pi->first_qset].q.size;
 }
 
-static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
+static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e,
+                        struct kernel_ethtool_ringparam *kernel_e,
+                        struct netlink_ext_ack *extack)
 {
        int i;
        const struct port_info *pi = netdev_priv(dev);
index 64479c464b4ec5a1f6ab82f789b2834f031e8ee6..61808c2c26a69213d5915155cc0bc70c04bb4a08 100644 (file)
@@ -1591,7 +1591,9 @@ static void cxgb4vf_set_msglevel(struct net_device *dev, u32 msglevel)
  * first Queue Set.
  */
 static void cxgb4vf_get_ringparam(struct net_device *dev,
-                                 struct ethtool_ringparam *rp)
+                                 struct ethtool_ringparam *rp,
+                                 struct kernel_ethtool_ringparam *kernel_rp,
+                                 struct netlink_ext_ack *extack)
 {
        const struct port_info *pi = netdev_priv(dev);
        const struct sge *s = &pi->adapter->sge;
@@ -1614,7 +1616,9 @@ static void cxgb4vf_get_ringparam(struct net_device *dev,
  * device -- after vetting them of course!
  */
 static int cxgb4vf_set_ringparam(struct net_device *dev,
-                                struct ethtool_ringparam *rp)
+                                struct ethtool_ringparam *rp,
+                                struct kernel_ethtool_ringparam *kernel_rp,
+                                struct netlink_ext_ack *extack)
 {
        const struct port_info *pi = netdev_priv(dev);
        struct adapter *adapter = pi->adapter;
index 6ded4d9fa32a07ab307057359e6db29a921e7f20..6c11f9d62526ea0de7a577490e9cfacc83fc84c9 100644 (file)
@@ -177,7 +177,9 @@ static void enic_get_strings(struct net_device *netdev, u32 stringset,
 }
 
 static void enic_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct enic *enic = netdev_priv(netdev);
        struct vnic_enet_config *c = &enic->config;
@@ -189,7 +191,9 @@ static void enic_get_ringparam(struct net_device *netdev,
 }
 
 static int enic_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct enic *enic = netdev_priv(netdev);
        struct vnic_enet_config *c = &enic->config;
index 941f175fb911e271aac296f6cd95ff74a6c9f155..07add311f65df5aa31b2bd8cd46be3c3105a45dc 100644 (file)
@@ -2105,7 +2105,9 @@ static void gmac_get_pauseparam(struct net_device *netdev,
 }
 
 static void gmac_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *rp)
+                              struct ethtool_ringparam *rp,
+                              struct kernel_ethtool_ringparam *kernel_rp,
+                              struct netlink_ext_ack *extack)
 {
        struct gemini_ethernet_port *port = netdev_priv(netdev);
 
@@ -2123,7 +2125,9 @@ static void gmac_get_ringparam(struct net_device *netdev,
 }
 
 static int gmac_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *rp)
+                             struct ethtool_ringparam *rp,
+                             struct kernel_ethtool_ringparam *kernel_rp,
+                             struct netlink_ext_ack *extack)
 {
        struct gemini_ethernet_port *port = netdev_priv(netdev);
        int err = 0;
index f9955308b93d6292718986aa887360f7f745d689..dfa784339781d3b8785ee6d38db6069b47cf5750 100644 (file)
@@ -683,7 +683,9 @@ static int be_get_link_ksettings(struct net_device *netdev,
 }
 
 static void be_get_ringparam(struct net_device *netdev,
-                            struct ethtool_ringparam *ring)
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct be_adapter *adapter = netdev_priv(netdev);
 
index b1c8ffea6ad299f8a7d09a2e3b6a126d400fc5bd..d618a8b785b0cc4afc2993ff0c0e7ab9e87fdf67 100644 (file)
@@ -945,7 +945,9 @@ static void ethoc_get_regs(struct net_device *dev, struct ethtool_regs *regs,
 }
 
 static void ethoc_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct ethoc *priv = netdev_priv(dev);
 
@@ -961,7 +963,9 @@ static void ethoc_get_ringparam(struct net_device *dev,
 }
 
 static int ethoc_set_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct ethoc *priv = netdev_priv(dev);
 
index 97c5d70de76e078b577e25fd462f1726eff1bc85..691605c152659b8c182df87a9ffab5aaaba99dff 100644 (file)
@@ -1178,8 +1178,11 @@ static void ftgmac100_get_drvinfo(struct net_device *netdev,
        strlcpy(info->bus_info, dev_name(&netdev->dev), sizeof(info->bus_info));
 }
 
-static void ftgmac100_get_ringparam(struct net_device *netdev,
-                                   struct ethtool_ringparam *ering)
+static void
+ftgmac100_get_ringparam(struct net_device *netdev,
+                       struct ethtool_ringparam *ering,
+                       struct kernel_ethtool_ringparam *kernel_ering,
+                       struct netlink_ext_ack *extack)
 {
        struct ftgmac100 *priv = netdev_priv(netdev);
 
@@ -1190,8 +1193,11 @@ static void ftgmac100_get_ringparam(struct net_device *netdev,
        ering->tx_pending = priv->tx_q_entries;
 }
 
-static int ftgmac100_set_ringparam(struct net_device *netdev,
-                                  struct ethtool_ringparam *ering)
+static int
+ftgmac100_set_ringparam(struct net_device *netdev,
+                       struct ethtool_ringparam *ering,
+                       struct kernel_ethtool_ringparam *kernel_ering,
+                       struct netlink_ext_ack *extack)
 {
        struct ftgmac100 *priv = netdev_priv(netdev);
 
index 910b9f722504a276b8417e2e01c1aef86bb852bf..fa5b4f885b177dce634ea4a4bb3be3d9ead91d13 100644 (file)
@@ -562,7 +562,9 @@ static int enetc_set_rxfh(struct net_device *ndev, const u32 *indir,
 }
 
 static void enetc_get_ringparam(struct net_device *ndev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct enetc_ndev_priv *priv = netdev_priv(ndev);
 
index 7b32ed29bf4cbe5723cfaf43df4d91b7d2f1471d..ff756265d58faf2e2d5af0e05e7a41d927ee8745 100644 (file)
@@ -372,7 +372,9 @@ static int gfar_scoalesce(struct net_device *dev,
  * rx, rx_mini, and rx_jumbo rings are the same size, as mini and
  * jumbo are ignored by the driver */
 static void gfar_gringparam(struct net_device *dev,
-                           struct ethtool_ringparam *rvals)
+                           struct ethtool_ringparam *rvals,
+                           struct kernel_ethtool_ringparam *kernel_rvals,
+                           struct netlink_ext_ack *extack)
 {
        struct gfar_private *priv = netdev_priv(dev);
        struct gfar_priv_tx_q *tx_queue = NULL;
@@ -399,7 +401,9 @@ static void gfar_gringparam(struct net_device *dev,
  * necessary so that we don't mess things up while we're in motion.
  */
 static int gfar_sringparam(struct net_device *dev,
-                          struct ethtool_ringparam *rvals)
+                          struct ethtool_ringparam *rvals,
+                          struct kernel_ethtool_ringparam *kernel_rvals,
+                          struct netlink_ext_ack *extack)
 {
        struct gfar_private *priv = netdev_priv(dev);
        int err = 0, i;
index 14c08a8681903878916069cf3dde5aac160a4af4..69b2b98b15251711c211c9519712a09df6e521d8 100644 (file)
@@ -207,7 +207,9 @@ uec_get_regs(struct net_device *netdev,
 
 static void
 uec_get_ringparam(struct net_device *netdev,
-                    struct ethtool_ringparam *ring)
+                 struct ethtool_ringparam *ring,
+                 struct kernel_ethtool_ringparam *kernel_ring,
+                 struct netlink_ext_ack *extack)
 {
        struct ucc_geth_private *ugeth = netdev_priv(netdev);
        struct ucc_geth_info *ug_info = ugeth->ug_info;
@@ -226,7 +228,9 @@ uec_get_ringparam(struct net_device *netdev,
 
 static int
 uec_set_ringparam(struct net_device *netdev,
-                    struct ethtool_ringparam *ring)
+                 struct ethtool_ringparam *ring,
+                 struct kernel_ethtool_ringparam *kernel_ring,
+                 struct netlink_ext_ack *extack)
 {
        struct ucc_geth_private *ugeth = netdev_priv(netdev);
        struct ucc_geth_info *ug_info = ugeth->ug_info;
index c8df47a97fa4f9bf2646b182406fe9602cc9fbef..fd2d2c705391121a283a430689ff76e50ad33b35 100644 (file)
@@ -419,7 +419,9 @@ static int gve_set_channels(struct net_device *netdev,
 }
 
 static void gve_get_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *cmd)
+                             struct ethtool_ringparam *cmd,
+                             struct kernel_ethtool_ringparam *kernel_cmd,
+                             struct netlink_ext_ack *extack)
 {
        struct gve_priv *priv = netdev_priv(netdev);
 
index ab73902259427b9d5c29bd8ec48b18c703a89581..d7a27c244d48060a7e5efe22376e9f465942a94a 100644 (file)
@@ -663,9 +663,13 @@ static void hns_nic_get_drvinfo(struct net_device *net_dev,
  * hns_get_ringparam - get ring parameter
  * @net_dev: net device
  * @param: ethtool parameter
+ * @kernel_param: ethtool external parameter
+ * @extack: netlink extended ACK report struct
  */
 static void hns_get_ringparam(struct net_device *net_dev,
-                             struct ethtool_ringparam *param)
+                             struct ethtool_ringparam *param,
+                             struct kernel_ethtool_ringparam *kernel_param,
+                             struct netlink_ext_ack *extack)
 {
        struct hns_nic_priv *priv = netdev_priv(net_dev);
        struct hnae_ae_ops *ops;
index 9a816dbec61320611bb7905793decafcab2c39f1..e35a2661b45d326cd225864448cf761ee8368a12 100644 (file)
@@ -643,7 +643,9 @@ static u32 hns3_get_link(struct net_device *netdev)
 }
 
 static void hns3_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *param)
+                              struct ethtool_ringparam *param,
+                              struct kernel_ethtool_ringparam *kernel_param,
+                              struct netlink_ext_ack *extack)
 {
        struct hns3_nic_priv *priv = netdev_priv(netdev);
        struct hnae3_handle *h = priv->ae_handle;
@@ -1081,7 +1083,9 @@ static int hns3_check_ringparam(struct net_device *ndev,
 }
 
 static int hns3_set_ringparam(struct net_device *ndev,
-                             struct ethtool_ringparam *param)
+                             struct ethtool_ringparam *param,
+                             struct kernel_ethtool_ringparam *kernel_param,
+                             struct netlink_ext_ack *extack)
 {
        struct hns3_nic_priv *priv = netdev_priv(ndev);
        struct hnae3_handle *h = priv->ae_handle;
index a35a80f9a2346490d2f9dc82503bc129ede99bc2..93192f58ac885c5c7a8650f5f9f001c7be767f03 100644 (file)
@@ -547,7 +547,9 @@ static void hinic_get_drvinfo(struct net_device *netdev,
 }
 
 static void hinic_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct hinic_dev *nic_dev = netdev_priv(netdev);
 
@@ -580,7 +582,9 @@ static int check_ringparam_valid(struct hinic_dev *nic_dev,
 }
 
 static int hinic_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct hinic_dev *nic_dev = netdev_priv(netdev);
        u16 new_sq_depth, new_rq_depth;
index 6b3fc8823c54108d4b11c26f462d089b6b59117f..fbea9f7efe8c89c24ae8b0b59a7e7814e08b86ba 100644 (file)
@@ -2137,8 +2137,11 @@ emac_ethtool_set_link_ksettings(struct net_device *ndev,
        return 0;
 }
 
-static void emac_ethtool_get_ringparam(struct net_device *ndev,
-                                      struct ethtool_ringparam *rp)
+static void
+emac_ethtool_get_ringparam(struct net_device *ndev,
+                          struct ethtool_ringparam *rp,
+                          struct kernel_ethtool_ringparam *kernel_rp,
+                          struct netlink_ext_ack *extack)
 {
        rp->rx_max_pending = rp->rx_pending = NUM_RX_BUFF;
        rp->tx_max_pending = rp->tx_pending = NUM_TX_BUFF;
index c327fc8860da20e16b6801adc071bfb90dd05c36..ad9a2819e2029921239ce5a59ae24a90e3546b50 100644 (file)
@@ -3088,7 +3088,9 @@ static u32 ibmvnic_get_link(struct net_device *netdev)
 }
 
 static void ibmvnic_get_ringparam(struct net_device *netdev,
-                                 struct ethtool_ringparam *ring)
+                                 struct ethtool_ringparam *ring,
+                                 struct kernel_ethtool_ringparam *kernel_ring,
+                                 struct netlink_ext_ack *extack)
 {
        struct ibmvnic_adapter *adapter = netdev_priv(netdev);
 
@@ -3108,7 +3110,9 @@ static void ibmvnic_get_ringparam(struct net_device *netdev,
 }
 
 static int ibmvnic_set_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct ibmvnic_adapter *adapter = netdev_priv(netdev);
        int ret;
index 0bf3d47bb90dc9a8919d45c47cc498ba70d4826a..4a8013f20152918a362fd371b6a06d9357a54fe0 100644 (file)
@@ -2557,7 +2557,9 @@ static int e100_set_eeprom(struct net_device *netdev,
 }
 
 static void e100_get_ringparam(struct net_device *netdev,
-       struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct nic *nic = netdev_priv(netdev);
        struct param_range *rfds = &nic->params.rfds;
@@ -2570,7 +2572,9 @@ static void e100_get_ringparam(struct net_device *netdev,
 }
 
 static int e100_set_ringparam(struct net_device *netdev,
-       struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct nic *nic = netdev_priv(netdev);
        struct param_range *rfds = &nic->params.rfds;
index 0a57172dfcbc4e1e5ee88a98d7d8b1e8adcd25cd..32803b0cf1e8e0131f2d53de9b60724d39fc6f09 100644 (file)
@@ -539,7 +539,9 @@ static void e1000_get_drvinfo(struct net_device *netdev,
 }
 
 static void e1000_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
@@ -556,7 +558,9 @@ static void e1000_get_ringparam(struct net_device *netdev,
 }
 
 static int e1000_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
index 8515e00d1b400c1347df9f4062486424a01492ee..b80ae9a82224d4bf76d516ac6d16dfb547de1f35 100644 (file)
@@ -655,7 +655,9 @@ static void e1000_get_drvinfo(struct net_device *netdev,
 }
 
 static void e1000_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct e1000_adapter *adapter = netdev_priv(netdev);
 
@@ -666,7 +668,9 @@ static void e1000_get_ringparam(struct net_device *netdev,
 }
 
 static int e1000_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_ring *temp_tx = NULL, *temp_rx = NULL;
index 0d37f011d0ceafb1384ff5cfcf504451718772dd..d53369e3004070e30efecd4531a0471467a0bcae 100644 (file)
@@ -502,7 +502,9 @@ static void fm10k_set_msglevel(struct net_device *netdev, u32 data)
 }
 
 static void fm10k_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct fm10k_intfc *interface = netdev_priv(netdev);
 
@@ -517,7 +519,9 @@ static void fm10k_get_ringparam(struct net_device *netdev,
 }
 
 static int fm10k_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct fm10k_intfc *interface = netdev_priv(netdev);
        struct fm10k_ring *temp_ring;
index 513ba697435594e0749bbb3ba7817f2ccb3caa12..091f36adbbe1ed532801328ea8c8e9860b7d0073 100644 (file)
@@ -1916,7 +1916,9 @@ static void i40e_get_drvinfo(struct net_device *netdev,
 }
 
 static void i40e_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct i40e_netdev_priv *np = netdev_priv(netdev);
        struct i40e_pf *pf = np->vsi->back;
@@ -1944,7 +1946,9 @@ static bool i40e_active_tx_ring_index(struct i40e_vsi *vsi, u16 index)
 }
 
 static int i40e_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct i40e_ring *tx_rings = NULL, *rx_rings = NULL;
        struct i40e_netdev_priv *np = netdev_priv(netdev);
index 144a776793597fa6f9b0fdc5f250e5ddb6e0c167..d327f576136f8ea15afe44e99444daa6fd88e1e9 100644 (file)
@@ -580,12 +580,16 @@ static void iavf_get_drvinfo(struct net_device *netdev,
  * iavf_get_ringparam - Get ring parameters
  * @netdev: network interface device structure
  * @ring: ethtool ringparam structure
+ * @kernel_ring: ethtool extenal ringparam structure
+ * @extack: netlink extended ACK report struct
  *
  * Returns current ring parameters. TX and RX rings are reported separately,
  * but the number of rings is not reported.
  **/
 static void iavf_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct iavf_adapter *adapter = netdev_priv(netdev);
 
@@ -599,12 +603,16 @@ static void iavf_get_ringparam(struct net_device *netdev,
  * iavf_set_ringparam - Set ring parameters
  * @netdev: network interface device structure
  * @ring: ethtool ringparam structure
+ * @kernel_ring: ethtool external ringparam structure
+ * @extack: netlink extended ACK report struct
  *
  * Sets ring parameters. TX and RX rings are controlled separately, but the
  * number of rings is not specified, so all rings get the same settings.
  **/
 static int iavf_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct iavf_adapter *adapter = netdev_priv(netdev);
        u32 new_rx_count, new_tx_count;
index 572519e402f461fc94b9b674ed26f48055899cad..5af2faaa21e185cf83d7e17336836fccadaff2e8 100644 (file)
@@ -2686,7 +2686,9 @@ ice_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
 }
 
 static void
-ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
+ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
+                 struct kernel_ethtool_ringparam *kernel_ring,
+                 struct netlink_ext_ack *extack)
 {
        struct ice_netdev_priv *np = netdev_priv(netdev);
        struct ice_vsi *vsi = np->vsi;
@@ -2704,7 +2706,9 @@ ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
 }
 
 static int
-ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
+ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
+                 struct kernel_ethtool_ringparam *kernel_ring,
+                 struct netlink_ext_ack *extack)
 {
        struct ice_netdev_priv *np = netdev_priv(netdev);
        struct ice_tx_ring *xdp_rings = NULL;
index fb1029352c3e744c1ce18482f15dde0ade22ed11..51a2dcaf553deed679e79d0ae1318d42561615ae 100644 (file)
@@ -864,7 +864,9 @@ static void igb_get_drvinfo(struct net_device *netdev,
 }
 
 static void igb_get_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct igb_adapter *adapter = netdev_priv(netdev);
 
@@ -875,7 +877,9 @@ static void igb_get_ringparam(struct net_device *netdev,
 }
 
 static int igb_set_ringparam(struct net_device *netdev,
-                            struct ethtool_ringparam *ring)
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct igb_adapter *adapter = netdev_priv(netdev);
        struct igb_ring *temp_ring;
index 06e5bd646a0ef0d3ca3e3e8278b42f021c610092..9d4322b74163680cfd48f267c24b17a601eb13c9 100644 (file)
@@ -175,7 +175,9 @@ static void igbvf_get_drvinfo(struct net_device *netdev,
 }
 
 static void igbvf_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct igbvf_adapter *adapter = netdev_priv(netdev);
        struct igbvf_ring *tx_ring = adapter->tx_ring;
@@ -188,7 +190,9 @@ static void igbvf_get_ringparam(struct net_device *netdev,
 }
 
 static int igbvf_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct igbvf_adapter *adapter = netdev_priv(netdev);
        struct igbvf_ring *temp_ring;
index e0a76ac1bbbcd5b6df90ba6a5246ed8ac18bfc1e..8cc077b712add6412f299f7247a2a5b990b6f5d1 100644 (file)
@@ -567,8 +567,11 @@ static int igc_ethtool_set_eeprom(struct net_device *netdev,
        return ret_val;
 }
 
-static void igc_ethtool_get_ringparam(struct net_device *netdev,
-                                     struct ethtool_ringparam *ring)
+static void
+igc_ethtool_get_ringparam(struct net_device *netdev,
+                         struct ethtool_ringparam *ring,
+                         struct kernel_ethtool_ringparam *kernel_ering,
+                         struct netlink_ext_ack *extack)
 {
        struct igc_adapter *adapter = netdev_priv(netdev);
 
@@ -578,8 +581,11 @@ static void igc_ethtool_get_ringparam(struct net_device *netdev,
        ring->tx_pending = adapter->tx_ring_count;
 }
 
-static int igc_ethtool_set_ringparam(struct net_device *netdev,
-                                    struct ethtool_ringparam *ring)
+static int
+igc_ethtool_set_ringparam(struct net_device *netdev,
+                         struct ethtool_ringparam *ring,
+                         struct kernel_ethtool_ringparam *kernel_ering,
+                         struct netlink_ext_ack *extack)
 {
        struct igc_adapter *adapter = netdev_priv(netdev);
        struct igc_ring *temp_ring;
index 582099a5ad41fc896c81a7f609f633231db99033..46efcfab7234aeb3568d87c87ff3f96487444a94 100644 (file)
@@ -464,7 +464,9 @@ ixgb_get_drvinfo(struct net_device *netdev,
 
 static void
 ixgb_get_ringparam(struct net_device *netdev,
-               struct ethtool_ringparam *ring)
+                  struct ethtool_ringparam *ring,
+                  struct kernel_ethtool_ringparam *kernel_ring,
+                  struct netlink_ext_ack *extack)
 {
        struct ixgb_adapter *adapter = netdev_priv(netdev);
        struct ixgb_desc_ring *txdr = &adapter->tx_ring;
@@ -478,7 +480,9 @@ ixgb_get_ringparam(struct net_device *netdev,
 
 static int
 ixgb_set_ringparam(struct net_device *netdev,
-               struct ethtool_ringparam *ring)
+                  struct ethtool_ringparam *ring,
+                  struct kernel_ethtool_ringparam *kernel_ring,
+                  struct netlink_ext_ack *extack)
 {
        struct ixgb_adapter *adapter = netdev_priv(netdev);
        struct ixgb_desc_ring *txdr = &adapter->tx_ring;
index 8362822316a915bbe4e76c616c60207e6d2b74dc..f70967c321161fd5d591fe0d8b8a1b164d8df0da 100644 (file)
@@ -1118,7 +1118,9 @@ static void ixgbe_get_drvinfo(struct net_device *netdev,
 }
 
 static void ixgbe_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct ixgbe_adapter *adapter = netdev_priv(netdev);
        struct ixgbe_ring *tx_ring = adapter->tx_ring[0];
@@ -1131,7 +1133,9 @@ static void ixgbe_get_ringparam(struct net_device *netdev,
 }
 
 static int ixgbe_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct ixgbe_adapter *adapter = netdev_priv(netdev);
        struct ixgbe_ring *temp_ring;
index 8380f905e708e3beb7d655041c05e811bfa58c99..3b41f83c8dff611e5315079458695dedec399f40 100644 (file)
@@ -225,7 +225,9 @@ static void ixgbevf_get_drvinfo(struct net_device *netdev,
 }
 
 static void ixgbevf_get_ringparam(struct net_device *netdev,
-                                 struct ethtool_ringparam *ring)
+                                 struct ethtool_ringparam *ring,
+                                 struct kernel_ethtool_ringparam *kernel_ring,
+                                 struct netlink_ext_ack *extack)
 {
        struct ixgbevf_adapter *adapter = netdev_priv(netdev);
 
@@ -236,7 +238,9 @@ static void ixgbevf_get_ringparam(struct net_device *netdev,
 }
 
 static int ixgbevf_set_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct ixgbevf_adapter *adapter = netdev_priv(netdev);
        struct ixgbevf_ring *tx_ring = NULL, *rx_ring = NULL;
index bb14fa2241a36ef3653050e74265cc0bd94e5929..11691973023720ee3ff9146e05ed1e58c8191e5b 100644 (file)
@@ -1638,7 +1638,9 @@ static int mv643xx_eth_set_coalesce(struct net_device *dev,
 }
 
 static void
-mv643xx_eth_get_ringparam(struct net_device *dev, struct ethtool_ringparam *er)
+mv643xx_eth_get_ringparam(struct net_device *dev, struct ethtool_ringparam *er,
+                         struct kernel_ethtool_ringparam *kernel_er,
+                         struct netlink_ext_ack *extack)
 {
        struct mv643xx_eth_private *mp = netdev_priv(dev);
 
@@ -1650,7 +1652,9 @@ mv643xx_eth_get_ringparam(struct net_device *dev, struct ethtool_ringparam *er)
 }
 
 static int
-mv643xx_eth_set_ringparam(struct net_device *dev, struct ethtool_ringparam *er)
+mv643xx_eth_set_ringparam(struct net_device *dev, struct ethtool_ringparam *er,
+                         struct kernel_ethtool_ringparam *kernel_er,
+                         struct netlink_ext_ack *extack)
 {
        struct mv643xx_eth_private *mp = netdev_priv(dev);
 
index 67a64417788000cdcf52ff6eae820693d9858421..350d24d7ead013bfe5bbd0d71dbb644a04b355b9 100644 (file)
@@ -4510,8 +4510,11 @@ static void mvneta_ethtool_get_drvinfo(struct net_device *dev,
 }
 
 
-static void mvneta_ethtool_get_ringparam(struct net_device *netdev,
-                                        struct ethtool_ringparam *ring)
+static void
+mvneta_ethtool_get_ringparam(struct net_device *netdev,
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct mvneta_port *pp = netdev_priv(netdev);
 
@@ -4521,8 +4524,11 @@ static void mvneta_ethtool_get_ringparam(struct net_device *netdev,
        ring->tx_pending = pp->tx_ring_size;
 }
 
-static int mvneta_ethtool_set_ringparam(struct net_device *dev,
-                                       struct ethtool_ringparam *ring)
+static int
+mvneta_ethtool_set_ringparam(struct net_device *dev,
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct mvneta_port *pp = netdev_priv(dev);
 
index df6c793f4b1b04eb1f812ce2a3a82a39cde0f68b..8b1ca0b13e8884dc0b58cd8a3c3692919441beb7 100644 (file)
@@ -5431,8 +5431,11 @@ static void mvpp2_ethtool_get_drvinfo(struct net_device *dev,
                sizeof(drvinfo->bus_info));
 }
 
-static void mvpp2_ethtool_get_ringparam(struct net_device *dev,
-                                       struct ethtool_ringparam *ring)
+static void
+mvpp2_ethtool_get_ringparam(struct net_device *dev,
+                           struct ethtool_ringparam *ring,
+                           struct kernel_ethtool_ringparam *kernel_ring,
+                           struct netlink_ext_ack *extack)
 {
        struct mvpp2_port *port = netdev_priv(dev);
 
@@ -5442,8 +5445,11 @@ static void mvpp2_ethtool_get_ringparam(struct net_device *dev,
        ring->tx_pending = port->tx_ring_size;
 }
 
-static int mvpp2_ethtool_set_ringparam(struct net_device *dev,
-                                      struct ethtool_ringparam *ring)
+static int
+mvpp2_ethtool_set_ringparam(struct net_device *dev,
+                           struct ethtool_ringparam *ring,
+                           struct kernel_ethtool_ringparam *kernel_ring,
+                           struct netlink_ext_ack *extack)
 {
        struct mvpp2_port *port = netdev_priv(dev);
        u16 prev_rx_ring_size = port->rx_ring_size;
index 80d4ce61f442d1713cb974cb6f2fdbe3210ba2e2..d85db90632d647b6be2d74c6f3a95850f8b2e423 100644 (file)
@@ -360,7 +360,9 @@ static int otx2_set_pauseparam(struct net_device *netdev,
 }
 
 static void otx2_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct otx2_nic *pfvf = netdev_priv(netdev);
        struct otx2_qset *qs = &pfvf->qset;
@@ -372,7 +374,9 @@ static void otx2_get_ringparam(struct net_device *netdev,
 }
 
 static int otx2_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct otx2_nic *pfvf = netdev_priv(netdev);
        bool if_up = netif_running(netdev);
index 0c864e5bf0a64115571776e899ba889154d78227..cf03c67fbf40d122356e84367261dbc4a0779628 100644 (file)
@@ -492,7 +492,9 @@ static void skge_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 }
 
 static void skge_get_ring_param(struct net_device *dev,
-                               struct ethtool_ringparam *p)
+                               struct ethtool_ringparam *p,
+                               struct kernel_ethtool_ringparam *kernel_p,
+                               struct netlink_ext_ack *extack)
 {
        struct skge_port *skge = netdev_priv(dev);
 
@@ -504,7 +506,9 @@ static void skge_get_ring_param(struct net_device *dev,
 }
 
 static int skge_set_ring_param(struct net_device *dev,
-                              struct ethtool_ringparam *p)
+                              struct ethtool_ringparam *p,
+                              struct kernel_ethtool_ringparam *kernel_p,
+                              struct netlink_ext_ack *extack)
 {
        struct skge_port *skge = netdev_priv(dev);
        int err = 0;
index d53ce826befd572546865ec411692810a50c5b8d..ea16b1dd6a987079a596d5dbf87c4e69bd4a1f8c 100644 (file)
@@ -4149,7 +4149,9 @@ static unsigned long roundup_ring_size(unsigned long pending)
 }
 
 static void sky2_get_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *ering)
+                              struct ethtool_ringparam *ering,
+                              struct kernel_ethtool_ringparam *kernel_ering,
+                              struct netlink_ext_ack *extack)
 {
        struct sky2_port *sky2 = netdev_priv(dev);
 
@@ -4161,7 +4163,9 @@ static void sky2_get_ringparam(struct net_device *dev,
 }
 
 static int sky2_set_ringparam(struct net_device *dev,
-                             struct ethtool_ringparam *ering)
+                             struct ethtool_ringparam *ering,
+                             struct kernel_ethtool_ringparam *kernel_ering,
+                             struct netlink_ext_ack *extack)
 {
        struct sky2_port *sky2 = netdev_priv(dev);
 
index 066d79e4ecfc28d8bfc5fa7ced33f3192a339cb9..e97d97e942319efcf4bb1d839112f98eacd64759 100644 (file)
@@ -1141,7 +1141,9 @@ static void mlx4_en_get_pauseparam(struct net_device *dev,
 }
 
 static int mlx4_en_set_ringparam(struct net_device *dev,
-                                struct ethtool_ringparam *param)
+                                struct ethtool_ringparam *param,
+                                struct kernel_ethtool_ringparam *kernel_param,
+                                struct netlink_ext_ack *extack)
 {
        struct mlx4_en_priv *priv = netdev_priv(dev);
        struct mlx4_en_dev *mdev = priv->mdev;
@@ -1208,7 +1210,9 @@ out:
 }
 
 static void mlx4_en_get_ringparam(struct net_device *dev,
-                                 struct ethtool_ringparam *param)
+                                 struct ethtool_ringparam *param,
+                                 struct kernel_ethtool_ringparam *kernel_param,
+                                 struct netlink_ext_ack *extack)
 {
        struct mlx4_en_priv *priv = netdev_priv(dev);
 
index 45bdfcb3dcc79f0f13787d853d1bfe4df72b1281..c8757c5a812bcb1f900f880c56fc2c571e6afb0b 100644 (file)
@@ -314,7 +314,9 @@ void mlx5e_ethtool_get_ringparam(struct mlx5e_priv *priv,
 }
 
 static void mlx5e_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *param)
+                               struct ethtool_ringparam *param,
+                               struct kernel_ethtool_ringparam *kernel_param,
+                               struct netlink_ext_ack *extack)
 {
        struct mlx5e_priv *priv = netdev_priv(dev);
 
@@ -380,7 +382,9 @@ unlock:
 }
 
 static int mlx5e_set_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *param)
+                              struct ethtool_ringparam *param,
+                              struct kernel_ethtool_ringparam *kernel_param,
+                              struct netlink_ext_ack *extack)
 {
        struct mlx5e_priv *priv = netdev_priv(dev);
 
index 8c81aeba07db8b7b538cc73df7fc0bfd55c54dbe..87c762066adb080ff942acc8bcd0322465c6eeab 100644 (file)
@@ -219,16 +219,22 @@ static int mlx5e_rep_get_sset_count(struct net_device *dev, int sset)
        }
 }
 
-static void mlx5e_rep_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *param)
+static void
+mlx5e_rep_get_ringparam(struct net_device *dev,
+                       struct ethtool_ringparam *param,
+                       struct kernel_ethtool_ringparam *kernel_param,
+                       struct netlink_ext_ack *extack)
 {
        struct mlx5e_priv *priv = netdev_priv(dev);
 
        mlx5e_ethtool_get_ringparam(priv, param);
 }
 
-static int mlx5e_rep_set_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *param)
+static int
+mlx5e_rep_set_ringparam(struct net_device *dev,
+                       struct ethtool_ringparam *param,
+                       struct kernel_ethtool_ringparam *kernel_param,
+                       struct netlink_ext_ack *extack)
 {
        struct mlx5e_priv *priv = netdev_priv(dev);
 
index f23e33ac9c6b22989fb410b854c5d9ef8d20de2f..f4f7eaf16446f46f07f3e2b73fabd2464345054d 100644 (file)
@@ -67,7 +67,9 @@ static void mlx5i_get_ethtool_stats(struct net_device *dev,
 }
 
 static int mlx5i_set_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *param)
+                              struct ethtool_ringparam *param,
+                              struct kernel_ethtool_ringparam *kernel_param,
+                              struct netlink_ext_ack *extack)
 {
        struct mlx5e_priv *priv = mlx5i_epriv(dev);
 
@@ -75,7 +77,9 @@ static int mlx5i_set_ringparam(struct net_device *dev,
 }
 
 static void mlx5i_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *param)
+                               struct ethtool_ringparam *param,
+                               struct kernel_ethtool_ringparam *kernel_param,
+                               struct netlink_ext_ack *extack)
 {
        struct mlx5e_priv *priv = mlx5i_epriv(dev);
 
index 92b798f8e73ab3b3baa04135afa82f366a70580f..ceeb7f4c3f6c9767c2851f85ced26e5e1b2ba6bd 100644 (file)
@@ -33,8 +33,11 @@ static void mlxbf_gige_get_regs(struct net_device *netdev,
        memcpy_fromio(p, priv->base, MLXBF_GIGE_MMIO_REG_SZ);
 }
 
-static void mlxbf_gige_get_ringparam(struct net_device *netdev,
-                                    struct ethtool_ringparam *ering)
+static void
+mlxbf_gige_get_ringparam(struct net_device *netdev,
+                        struct ethtool_ringparam *ering,
+                        struct kernel_ethtool_ringparam *kernel_ering,
+                        struct netlink_ext_ack *extack)
 {
        struct mlxbf_gige *priv = netdev_priv(netdev);
 
index 99c0c1491af20ab18da6d1d43c8b6fd1b50448cc..d024983815da7b0a86e8c3465d6113ea915defc1 100644 (file)
@@ -6317,11 +6317,15 @@ static int netdev_set_pauseparam(struct net_device *dev,
  * netdev_get_ringparam - get tx/rx ring parameters
  * @dev:       Network device.
  * @ring:      Ethtool RING settings data structure.
+ * @kernel_ring:       Ethtool external RING settings data structure.
+ * @extack:    Netlink handle.
  *
  * This procedure returns the TX/RX ring settings.
  */
 static void netdev_get_ringparam(struct net_device *dev,
-       struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct dev_priv *priv = netdev_priv(dev);
        struct dev_info *hw_priv = priv->adapter;
index 5736fcdafd7a02f62834ec9b153b4165761625a1..83a5e29c836a7ae76f182eec81d4e23d659b3822 100644 (file)
@@ -1704,7 +1704,9 @@ myri10ge_set_pauseparam(struct net_device *netdev,
 
 static void
 myri10ge_get_ringparam(struct net_device *netdev,
-                      struct ethtool_ringparam *ring)
+                      struct ethtool_ringparam *ring,
+                      struct kernel_ethtool_ringparam *kernel_ring,
+                      struct netlink_ext_ack *extack)
 {
        struct myri10ge_priv *mgp = netdev_priv(netdev);
 
index d1c32c65db054ef8286b1c223b6f6fe4a57a3743..d6ae44f164a9d0bbbc19dc1c3a58f9777c6b14c5 100644 (file)
@@ -5461,8 +5461,11 @@ static int s2io_ethtool_set_led(struct net_device *dev,
        return 0;
 }
 
-static void s2io_ethtool_gringparam(struct net_device *dev,
-                                   struct ethtool_ringparam *ering)
+static void
+s2io_ethtool_gringparam(struct net_device *dev,
+                       struct ethtool_ringparam *ering,
+                       struct kernel_ethtool_ringparam *kernel_ering,
+                       struct netlink_ext_ack *extack)
 {
        struct s2io_nic *sp = netdev_priv(dev);
        int i, tx_desc_count = 0, rx_desc_count = 0;
index 1de076f557405e9e48df97eb5edf39acc363efb5..93fa8e677e05a479c8ef69c451970d482a811c56 100644 (file)
@@ -381,7 +381,9 @@ err_bad_set:
 }
 
 static void nfp_net_get_ringparam(struct net_device *netdev,
-                                 struct ethtool_ringparam *ring)
+                                 struct ethtool_ringparam *ring,
+                                 struct kernel_ethtool_ringparam *kernel_ring,
+                                 struct netlink_ext_ack *extack)
 {
        struct nfp_net *nn = netdev_priv(netdev);
 
@@ -406,7 +408,9 @@ static int nfp_net_set_ring_size(struct nfp_net *nn, u32 rxd_cnt, u32 txd_cnt)
 }
 
 static int nfp_net_set_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct nfp_net *nn = netdev_priv(netdev);
        u32 rxd_cnt, txd_cnt;
index 9b530d7509a42ab41372fcb8fb0d86e0cef832ce..660013f716d484eddea402cae8c8d8ea43cb2f14 100644 (file)
@@ -4651,7 +4651,10 @@ static int nv_nway_reset(struct net_device *dev)
        return ret;
 }
 
-static void nv_get_ringparam(struct net_device *dev, struct ethtool_ringparam* ring)
+static void nv_get_ringparam(struct net_device *dev,
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        struct fe_priv *np = netdev_priv(dev);
 
@@ -4662,7 +4665,10 @@ static void nv_get_ringparam(struct net_device *dev, struct ethtool_ringparam* r
        ring->tx_pending = np->tx_ring_size;
 }
 
-static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ring)
+static int nv_set_ringparam(struct net_device *dev,
+                           struct ethtool_ringparam *ring,
+                           struct kernel_ethtool_ringparam *kernel_ring,
+                           struct netlink_ext_ack *extack)
 {
        struct fe_priv *np = netdev_priv(dev);
        u8 __iomem *base = get_hwbase(dev);
index 660b07cb5b92633739ec3329e38189896c077e23..84cc79e928c8bfdbd422301552ba5a46cfca1642 100644 (file)
@@ -270,9 +270,13 @@ static int pch_gbe_nway_reset(struct net_device *netdev)
  * pch_gbe_get_ringparam - Report ring sizes
  * @netdev:  Network interface device structure
  * @ring:    Ring param structure
+ * @kernel_ring:       Ring external param structure
+ * @extack:    netlink handle
  */
 static void pch_gbe_get_ringparam(struct net_device *netdev,
-                                       struct ethtool_ringparam *ring)
+                                 struct ethtool_ringparam *ring,
+                                 struct kernel_ethtool_ringparam *kernel_ring,
+                                 struct netlink_ext_ack *extack)
 {
        struct pch_gbe_adapter *adapter = netdev_priv(netdev);
        struct pch_gbe_tx_ring *txdr = adapter->tx_ring;
@@ -288,12 +292,16 @@ static void pch_gbe_get_ringparam(struct net_device *netdev,
  * pch_gbe_set_ringparam - Set ring sizes
  * @netdev:  Network interface device structure
  * @ring:    Ring param structure
+ * @kernel_ring:       Ring external param structure
+ * @extack:    netlink handle
  * Returns
  *     0:                      Successful.
  *     Negative value:         Failed.
  */
 static int pch_gbe_set_ringparam(struct net_device *netdev,
-                                       struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct pch_gbe_adapter *adapter = netdev_priv(netdev);
        struct pch_gbe_tx_ring *txdr, *tx_old;
index e1a304886a3c5714c63d5938bb590c020fafe769..4c7e0c9911056726ca0688c29b482320e0b04ef2 100644 (file)
@@ -69,7 +69,9 @@ pasemi_mac_ethtool_set_msglevel(struct net_device *netdev,
 
 static void
 pasemi_mac_ethtool_get_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ering)
+                                struct ethtool_ringparam *ering,
+                                struct kernel_ethtool_ringparam *kernel_ering,
+                                struct netlink_ext_ack *extack)
 {
        struct pasemi_mac *mac = netdev_priv(netdev);
 
index c54d735b9e2e830792cd6c312930b73365bb7723..386a5cf1e2249b3c9cc6c9b2ec0095798c04c015 100644 (file)
@@ -512,7 +512,9 @@ static int ionic_set_coalesce(struct net_device *netdev,
 }
 
 static void ionic_get_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct ionic_lif *lif = netdev_priv(netdev);
 
@@ -523,7 +525,9 @@ static void ionic_get_ringparam(struct net_device *netdev,
 }
 
 static int ionic_set_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct ionic_lif *lif = netdev_priv(netdev);
        struct ionic_queue_params qparam;
index a075643f582655e4fc1e3c482a4e64f1fd69be84..3c4a84ea632117b71d8697af65cf701a050c53fb 100644 (file)
@@ -392,7 +392,9 @@ netxen_nic_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
 
 static void
 netxen_nic_get_ringparam(struct net_device *dev,
-               struct ethtool_ringparam *ring)
+                        struct ethtool_ringparam *ring,
+                        struct kernel_ethtool_ringparam *kernel_ring,
+                        struct netlink_ext_ack *extack)
 {
        struct netxen_adapter *adapter = netdev_priv(dev);
 
@@ -430,7 +432,9 @@ netxen_validate_ringparam(u32 val, u32 min, u32 max, char *r_name)
 
 static int
 netxen_nic_set_ringparam(struct net_device *dev,
-               struct ethtool_ringparam *ring)
+                        struct ethtool_ringparam *ring,
+                        struct kernel_ethtool_ringparam *kernel_ring,
+                        struct netlink_ext_ack *extack)
 {
        struct netxen_adapter *adapter = netdev_priv(dev);
        u16 max_rcv_desc = MAX_RCV_DESCRIPTORS_10G;
index 8284c4c1528f79eead74f898418c61820324039c..100c9c52c20b07dd8edd6b0e489c923240042163 100644 (file)
@@ -888,7 +888,9 @@ int qede_set_coalesce(struct net_device *dev, struct ethtool_coalesce *coal,
 }
 
 static void qede_get_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *ering)
+                              struct ethtool_ringparam *ering,
+                              struct kernel_ethtool_ringparam *kernel_ering,
+                              struct netlink_ext_ack *extack)
 {
        struct qede_dev *edev = netdev_priv(dev);
 
@@ -899,7 +901,9 @@ static void qede_get_ringparam(struct net_device *dev,
 }
 
 static int qede_set_ringparam(struct net_device *dev,
-                             struct ethtool_ringparam *ering)
+                             struct ethtool_ringparam *ering,
+                             struct kernel_ethtool_ringparam *kernel_ering,
+                             struct netlink_ext_ack *extack)
 {
        struct qede_dev *edev = netdev_priv(dev);
 
index fc364b4ab6ebade602751c3b004409b2787abbf8..e10fe071a40f7d698707ff652f43bd01f751156a 100644 (file)
@@ -632,7 +632,9 @@ qlcnic_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
 
 static void
 qlcnic_get_ringparam(struct net_device *dev,
-               struct ethtool_ringparam *ring)
+                    struct ethtool_ringparam *ring,
+                    struct kernel_ethtool_ringparam *kernel_ring,
+                    struct netlink_ext_ack *extack)
 {
        struct qlcnic_adapter *adapter = netdev_priv(dev);
 
@@ -663,7 +665,9 @@ qlcnic_validate_ringparam(u32 val, u32 min, u32 max, char *r_name)
 
 static int
 qlcnic_set_ringparam(struct net_device *dev,
-               struct ethtool_ringparam *ring)
+                    struct ethtool_ringparam *ring,
+                    struct kernel_ethtool_ringparam *kernel_ring,
+                    struct netlink_ext_ack *extack)
 {
        struct qlcnic_adapter *adapter = netdev_priv(dev);
        u16 num_rxd, num_jumbo_rxd, num_txd;
index f72e13b8386962048f6037f7cb8000a883dd9afe..f502db9cdea9f1faa65816739fada05cf4c301b8 100644 (file)
@@ -133,7 +133,9 @@ static int emac_nway_reset(struct net_device *netdev)
 }
 
 static void emac_get_ringparam(struct net_device *netdev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct emac_adapter *adpt = netdev_priv(netdev);
 
@@ -144,7 +146,9 @@ static void emac_get_ringparam(struct net_device *netdev,
 }
 
 static int emac_set_ringparam(struct net_device *netdev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct emac_adapter *adpt = netdev_priv(netdev);
 
index d59fff2fbcc63b9ce466cb91e956a848e0eb3dd4..792ce9a323cded79090c7fafec4c370b75ae0e44 100644 (file)
@@ -246,7 +246,9 @@ qcaspi_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
 }
 
 static void
-qcaspi_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring)
+qcaspi_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring,
+                    struct kernel_ethtool_ringparam *kernel_ring,
+                    struct netlink_ext_ack *extack)
 {
        struct qcaspi *qca = netdev_priv(dev);
 
@@ -257,7 +259,9 @@ qcaspi_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring)
 }
 
 static int
-qcaspi_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ring)
+qcaspi_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ring,
+                    struct kernel_ethtool_ringparam *kernel_ring,
+                    struct netlink_ext_ack *extack)
 {
        const struct net_device_ops *ops = dev->netdev_ops;
        struct qcaspi *qca = netdev_priv(dev);
index 4f39f843bb3a513cac15f496f421fa8056d459d0..ad7b9e9d7f95b419ea872f373de802236a043056 100644 (file)
@@ -1388,7 +1388,9 @@ static void cp_get_drvinfo (struct net_device *dev, struct ethtool_drvinfo *info
 }
 
 static void cp_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *ring)
+                            struct ethtool_ringparam *ring,
+                            struct kernel_ethtool_ringparam *kernel_ring,
+                            struct netlink_ext_ack *extack)
 {
        ring->rx_max_pending = CP_RX_RING_SIZE;
        ring->tx_max_pending = CP_TX_RING_SIZE;
index e896e5eca8048ba0a00e83d290e68069ef3e4783..14dd04b2fbeda1c80c6737ebba0df35bc9bca8fa 100644 (file)
@@ -1873,7 +1873,9 @@ static int rtl8169_set_eee(struct net_device *dev, struct ethtool_eee *data)
 }
 
 static void rtl8169_get_ringparam(struct net_device *dev,
-                                 struct ethtool_ringparam *data)
+                                 struct ethtool_ringparam *data,
+                                 struct kernel_ethtool_ringparam *kernel_data,
+                                 struct netlink_ext_ack *extack)
 {
        data->rx_max_pending = NUM_RX_DESC;
        data->rx_pending = NUM_RX_DESC;
index 151cce2fe36d5beddce824d7960f2ef618edc0be..ce09bd45527ea530e18c29689f1aecc1b5d48d19 100644 (file)
@@ -1604,7 +1604,9 @@ static void ravb_get_strings(struct net_device *ndev, u32 stringset, u8 *data)
 }
 
 static void ravb_get_ringparam(struct net_device *ndev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct ravb_private *priv = netdev_priv(ndev);
 
@@ -1615,7 +1617,9 @@ static void ravb_get_ringparam(struct net_device *ndev,
 }
 
 static int ravb_set_ringparam(struct net_device *ndev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct ravb_private *priv = netdev_priv(ndev);
        const struct ravb_hw_info *info = priv->info;
index a3fbb2221c9afcf3403f0a6b8de71e6f4970b51c..223626290ce0e278f0d0139f2f2555d5c22e90c0 100644 (file)
@@ -2296,7 +2296,9 @@ static void sh_eth_get_strings(struct net_device *ndev, u32 stringset, u8 *data)
 }
 
 static void sh_eth_get_ringparam(struct net_device *ndev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct sh_eth_private *mdp = netdev_priv(ndev);
 
@@ -2307,7 +2309,9 @@ static void sh_eth_get_ringparam(struct net_device *ndev,
 }
 
 static int sh_eth_set_ringparam(struct net_device *ndev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct sh_eth_private *mdp = netdev_priv(ndev);
        int ret;
index 835c838b7dfaa66b449b8a9f452ff7c047307cc6..5dba4125d95302f8a8414af57f838c442ff81693 100644 (file)
 /* This is the maximum number of descriptor rings supported by the QDMA */
 #define EFX_EF100_MAX_DMAQ_SIZE 16384UL
 
-static void ef100_ethtool_get_ringparam(struct net_device *net_dev,
-                                       struct ethtool_ringparam *ring)
+static void
+ef100_ethtool_get_ringparam(struct net_device *net_dev,
+                           struct ethtool_ringparam *ring,
+                           struct kernel_ethtool_ringparam *kernel_ring,
+                           struct netlink_ext_ack *extack)
 {
        struct efx_nic *efx = netdev_priv(net_dev);
 
index e002ce21788d5a52db0fe2a9fcb9912fb42e4a4b..48506373721ae8d9380535deddf82481d46e80b0 100644 (file)
@@ -157,8 +157,11 @@ static int efx_ethtool_set_coalesce(struct net_device *net_dev,
        return 0;
 }
 
-static void efx_ethtool_get_ringparam(struct net_device *net_dev,
-                                     struct ethtool_ringparam *ring)
+static void
+efx_ethtool_get_ringparam(struct net_device *net_dev,
+                         struct ethtool_ringparam *ring,
+                         struct kernel_ethtool_ringparam *kernel_ring,
+                         struct netlink_ext_ack *extack)
 {
        struct efx_nic *efx = netdev_priv(net_dev);
 
@@ -168,8 +171,11 @@ static void efx_ethtool_get_ringparam(struct net_device *net_dev,
        ring->tx_pending = efx->txq_entries;
 }
 
-static int efx_ethtool_set_ringparam(struct net_device *net_dev,
-                                    struct ethtool_ringparam *ring)
+static int
+efx_ethtool_set_ringparam(struct net_device *net_dev,
+                         struct ethtool_ringparam *ring,
+                         struct kernel_ethtool_ringparam *kernel_ring,
+                         struct netlink_ext_ack *extack)
 {
        struct efx_nic *efx = netdev_priv(net_dev);
        u32 txq_entries;
index 137e8a7aeaa17809df9cf8ca7104890ac7597c16..907254b36663b22a6615f8c2e10f355e145b3f6f 100644 (file)
@@ -637,8 +637,11 @@ static int ef4_ethtool_set_coalesce(struct net_device *net_dev,
        return 0;
 }
 
-static void ef4_ethtool_get_ringparam(struct net_device *net_dev,
-                                     struct ethtool_ringparam *ring)
+static void
+ef4_ethtool_get_ringparam(struct net_device *net_dev,
+                         struct ethtool_ringparam *ring,
+                         struct kernel_ethtool_ringparam *kernel_ring,
+                         struct netlink_ext_ack *extack)
 {
        struct ef4_nic *efx = netdev_priv(net_dev);
 
@@ -648,8 +651,11 @@ static void ef4_ethtool_get_ringparam(struct net_device *net_dev,
        ring->tx_pending = efx->txq_entries;
 }
 
-static int ef4_ethtool_set_ringparam(struct net_device *net_dev,
-                                    struct ethtool_ringparam *ring)
+static int
+ef4_ethtool_set_ringparam(struct net_device *net_dev,
+                         struct ethtool_ringparam *ring,
+                         struct kernel_ethtool_ringparam *kernel_ring,
+                         struct netlink_ext_ack *extack)
 {
        struct ef4_nic *efx = netdev_priv(net_dev);
        u32 txq_entries;
index d89455803beda85bd4094e46e17bc40750ed933b..eead45369eb9d5a94875889ddd50d5f73ffa607d 100644 (file)
@@ -463,7 +463,9 @@ static int stmmac_nway_reset(struct net_device *dev)
 }
 
 static void stmmac_get_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct stmmac_priv *priv = netdev_priv(netdev);
 
@@ -474,7 +476,9 @@ static void stmmac_get_ringparam(struct net_device *netdev,
 }
 
 static int stmmac_set_ringparam(struct net_device *netdev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        if (ring->rx_mini_pending || ring->rx_jumbo_pending ||
            ring->rx_pending < DMA_MIN_RX_SIZE ||
index 0775a5542f2f925a9cdd5d2ab7a5cc63a957fc8e..89bc1602661c7f5300f3d9aeec170b951977a1b5 100644 (file)
@@ -2245,9 +2245,13 @@ static inline int bdx_tx_fifo_size_to_packets(int tx_size)
  * bdx_get_ringparam - report ring sizes
  * @netdev
  * @ring
+ * @kernel_ring
+ * @extack
  */
 static void
-bdx_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
+bdx_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
+                 struct kernel_ethtool_ringparam *kernel_ring,
+                 struct netlink_ext_ack *extack)
 {
        struct bdx_priv *priv = netdev_priv(netdev);
 
@@ -2262,9 +2266,13 @@ bdx_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
  * bdx_set_ringparam - set ring sizes
  * @netdev
  * @ring
+ * @kernel_ring
+ * @extack
  */
 static int
-bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
+bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
+                 struct kernel_ethtool_ringparam *kernel_ring,
+                 struct netlink_ext_ack *extack)
 {
        struct bdx_priv *priv = netdev_priv(netdev);
        int rx_size = 0;
index b05de9b61ad61970b8a3f774f6462e782ffe02ac..d45b6bb86f0be5b03c155e31f90b5aba25bb99e9 100644 (file)
@@ -453,8 +453,11 @@ static int am65_cpsw_set_channels(struct net_device *ndev,
        return am65_cpsw_nuss_update_tx_chns(common, chs->tx_count);
 }
 
-static void am65_cpsw_get_ringparam(struct net_device *ndev,
-                                   struct ethtool_ringparam *ering)
+static void
+am65_cpsw_get_ringparam(struct net_device *ndev,
+                       struct ethtool_ringparam *ering,
+                       struct kernel_ethtool_ringparam *kernel_ering,
+                       struct netlink_ext_ack *extack)
 {
        struct am65_cpsw_common *common = am65_ndev_to_common(ndev);
 
index 7449436fc87ca5db772c92e752680b3a73589b6c..bef5e68dac31167b6f3880bcb6c0ae8cdcb8bee3 100644 (file)
@@ -817,7 +817,9 @@ static void cpmac_tx_timeout(struct net_device *dev, unsigned int txqueue)
 }
 
 static void cpmac_get_ringparam(struct net_device *dev,
-                                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct cpmac_priv *priv = netdev_priv(dev);
 
@@ -833,7 +835,9 @@ static void cpmac_get_ringparam(struct net_device *dev,
 }
 
 static int cpmac_set_ringparam(struct net_device *dev,
-                                               struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct cpmac_priv *priv = netdev_priv(dev);
 
index 158c8d3793f43c5eddcb2dd84ea1c937349c0d4a..aa42141be3c0ef00419a479079af27f789549cb1 100644 (file)
@@ -658,7 +658,9 @@ err:
 }
 
 void cpsw_get_ringparam(struct net_device *ndev,
-                       struct ethtool_ringparam *ering)
+                       struct ethtool_ringparam *ering,
+                       struct kernel_ethtool_ringparam *kernel_ering,
+                       struct netlink_ext_ack *extack)
 {
        struct cpsw_priv *priv = netdev_priv(ndev);
        struct cpsw_common *cpsw = priv->cpsw;
@@ -671,7 +673,9 @@ void cpsw_get_ringparam(struct net_device *ndev,
 }
 
 int cpsw_set_ringparam(struct net_device *ndev,
-                      struct ethtool_ringparam *ering)
+                      struct ethtool_ringparam *ering,
+                      struct kernel_ethtool_ringparam *kernel_ering,
+                      struct netlink_ext_ack *extack)
 {
        struct cpsw_common *cpsw = ndev_to_cpsw(ndev);
        int descs_num, ret;
index 435668ee542d18131a41e96815db2c88a2fd9ee3..f33c882eb70eb88711ed3ee992f9060f776c55cd 100644 (file)
@@ -491,9 +491,13 @@ int cpsw_get_eee(struct net_device *ndev, struct ethtool_eee *edata);
 int cpsw_set_eee(struct net_device *ndev, struct ethtool_eee *edata);
 int cpsw_nway_reset(struct net_device *ndev);
 void cpsw_get_ringparam(struct net_device *ndev,
-                       struct ethtool_ringparam *ering);
+                       struct ethtool_ringparam *ering,
+                       struct kernel_ethtool_ringparam *kernel_ering,
+                       struct netlink_ext_ack *extack);
 int cpsw_set_ringparam(struct net_device *ndev,
-                      struct ethtool_ringparam *ering);
+                      struct ethtool_ringparam *ering,
+                      struct kernel_ethtool_ringparam *kernel_ering,
+                      struct netlink_ext_ack *extack);
 int cpsw_set_channels_common(struct net_device *ndev,
                             struct ethtool_channels *chs,
                             cpdma_handler_fn rx_handler);
index 54f655a681488774ed24fac6ef50bde1779b8bfc..93110dba0bfa0139af38c5cf437fee3c692e80cb 100644 (file)
@@ -110,7 +110,9 @@ spider_net_ethtool_nway_reset(struct net_device *netdev)
 
 static void
 spider_net_ethtool_get_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ering)
+                                struct ethtool_ringparam *ering,
+                                struct kernel_ethtool_ringparam *kernel_ering,
+                                struct netlink_ext_ack *extack)
 {
        struct spider_net_card *card = netdev_priv(netdev);
 
index e7065c9a8e3898da8817f2bba420022e33607f1c..b900ab5aef2a8fa578c1649c0f1fee4fdfb415a7 100644 (file)
@@ -1276,8 +1276,11 @@ static const struct attribute_group temac_attr_group = {
  * ethtool support
  */
 
-static void ll_temac_ethtools_get_ringparam(struct net_device *ndev,
-                                           struct ethtool_ringparam *ering)
+static void
+ll_temac_ethtools_get_ringparam(struct net_device *ndev,
+                               struct ethtool_ringparam *ering,
+                               struct kernel_ethtool_ringparam *kernel_ering,
+                               struct netlink_ext_ack *extack)
 {
        struct temac_local *lp = netdev_priv(ndev);
 
@@ -1291,8 +1294,11 @@ static void ll_temac_ethtools_get_ringparam(struct net_device *ndev,
        ering->tx_pending = lp->tx_bd_num;
 }
 
-static int ll_temac_ethtools_set_ringparam(struct net_device *ndev,
-                                          struct ethtool_ringparam *ering)
+static int
+ll_temac_ethtools_set_ringparam(struct net_device *ndev,
+                               struct ethtool_ringparam *ering,
+                               struct kernel_ethtool_ringparam *kernel_ering,
+                               struct netlink_ext_ack *extack)
 {
        struct temac_local *lp = netdev_priv(ndev);
 
index 3dabc1901416a768c554589ddd9cc64dca6f7666..e39356364f3360712d48d78c8c57653e31a02841 100644 (file)
@@ -1323,8 +1323,11 @@ static void axienet_ethtools_get_regs(struct net_device *ndev,
        data[39] = axienet_dma_in32(lp, XAXIDMA_RX_TDESC_OFFSET);
 }
 
-static void axienet_ethtools_get_ringparam(struct net_device *ndev,
-                                          struct ethtool_ringparam *ering)
+static void
+axienet_ethtools_get_ringparam(struct net_device *ndev,
+                              struct ethtool_ringparam *ering,
+                              struct kernel_ethtool_ringparam *kernel_ering,
+                              struct netlink_ext_ack *extack)
 {
        struct axienet_local *lp = netdev_priv(ndev);
 
@@ -1338,8 +1341,11 @@ static void axienet_ethtools_get_ringparam(struct net_device *ndev,
        ering->tx_pending = lp->tx_bd_num;
 }
 
-static int axienet_ethtools_set_ringparam(struct net_device *ndev,
-                                         struct ethtool_ringparam *ering)
+static int
+axienet_ethtools_set_ringparam(struct net_device *ndev,
+                              struct ethtool_ringparam *ering,
+                              struct kernel_ethtool_ringparam *kernel_ering,
+                              struct netlink_ext_ack *extack)
 {
        struct axienet_local *lp = netdev_priv(ndev);
 
index 7e66ae1d2a59bf706bfc8ddf3bc62b6c813ca123..efa963b7af546d8ed8bb76a7e83d9a05d303e09d 100644 (file)
@@ -1858,7 +1858,9 @@ static void __netvsc_get_ringparam(struct netvsc_device *nvdev,
 }
 
 static void netvsc_get_ringparam(struct net_device *ndev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct net_device_context *ndevctx = netdev_priv(ndev);
        struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
@@ -1870,7 +1872,9 @@ static void netvsc_get_ringparam(struct net_device *ndev,
 }
 
 static int netvsc_set_ringparam(struct net_device *ndev,
-                               struct ethtool_ringparam *ring)
+                               struct ethtool_ringparam *ring,
+                               struct kernel_ethtool_ringparam *kernel_ring,
+                               struct netlink_ext_ack *extack)
 {
        struct net_device_context *ndevctx = netdev_priv(ndev);
        struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
index 0ab6a40be61147bde13b41279e32a8e9296417dd..2b84169bf3a2d708ddcff8539e7d31e10f6a452b 100644 (file)
@@ -65,7 +65,9 @@ static int nsim_set_coalesce(struct net_device *dev,
 }
 
 static void nsim_get_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *ring)
+                              struct ethtool_ringparam *ring,
+                              struct kernel_ethtool_ringparam *kernel_ring,
+                              struct netlink_ext_ack *extack)
 {
        struct netdevsim *ns = netdev_priv(dev);
 
@@ -73,7 +75,9 @@ static void nsim_get_ringparam(struct net_device *dev,
 }
 
 static int nsim_set_ringparam(struct net_device *dev,
-                             struct ethtool_ringparam *ring)
+                             struct ethtool_ringparam *ring,
+                             struct kernel_ethtool_ringparam *kernel_ring,
+                             struct netlink_ext_ack *extack)
 {
        struct netdevsim *ns = netdev_priv(dev);
 
index f9877a3e83acf8194a923e5dbdb129f00da202b9..b88f07c77a6b0acc7753776ea41ac678f28bf739 100644 (file)
@@ -8983,7 +8983,9 @@ static int rtl8152_set_tunable(struct net_device *netdev,
 }
 
 static void rtl8152_get_ringparam(struct net_device *netdev,
-                                 struct ethtool_ringparam *ring)
+                                 struct ethtool_ringparam *ring,
+                                 struct kernel_ethtool_ringparam *kernel_ring,
+                                 struct netlink_ext_ack *extack)
 {
        struct r8152 *tp = netdev_priv(netdev);
 
@@ -8992,7 +8994,9 @@ static void rtl8152_get_ringparam(struct net_device *netdev,
 }
 
 static int rtl8152_set_ringparam(struct net_device *netdev,
-                                struct ethtool_ringparam *ring)
+                                struct ethtool_ringparam *ring,
+                                struct kernel_ethtool_ringparam *kernel_ring,
+                                struct netlink_ext_ack *extack)
 {
        struct r8152 *tp = netdev_priv(netdev);
 
index 03e38e38ee4b5a97567eb692cd84a55722a1a8b2..c74af526d79b8168bc41b57beb0590f2369d163b 100644 (file)
@@ -2174,7 +2174,9 @@ static void virtnet_cpu_notif_remove(struct virtnet_info *vi)
 }
 
 static void virtnet_get_ringparam(struct net_device *dev,
-                               struct ethtool_ringparam *ring)
+                                 struct ethtool_ringparam *ring,
+                                 struct kernel_ethtool_ringparam *kernel_ring,
+                                 struct netlink_ext_ack *extack)
 {
        struct virtnet_info *vi = netdev_priv(dev);
 
index 16f3a2057b9067905e285bc1f067cdcd6e9669bc..3172d46c03355870fc1316142cf608bf17f8e757 100644 (file)
@@ -575,10 +575,11 @@ vmxnet3_get_link_ksettings(struct net_device *netdev,
        return 0;
 }
 
-
 static void
 vmxnet3_get_ringparam(struct net_device *netdev,
-                     struct ethtool_ringparam *param)
+                     struct ethtool_ringparam *param,
+                     struct kernel_ethtool_ringparam *kernel_param,
+                     struct netlink_ext_ack *extack)
 {
        struct vmxnet3_adapter *adapter = netdev_priv(netdev);
 
@@ -595,10 +596,11 @@ vmxnet3_get_ringparam(struct net_device *netdev,
        param->rx_jumbo_pending = adapter->rx_ring2_size;
 }
 
-
 static int
 vmxnet3_set_ringparam(struct net_device *netdev,
-                     struct ethtool_ringparam *param)
+                     struct ethtool_ringparam *param,
+                     struct kernel_ethtool_ringparam *kernel_param,
+                     struct netlink_ext_ack *extack)
 {
        struct vmxnet3_adapter *adapter = netdev_priv(netdev);
        u32 new_tx_ring_size, new_rx_ring_size, new_rx_ring2_size;
index 46d0fe0d0e8a50062491125128a204a2097b7c6f..b0b36b2132fe943d5ccfda4b38d07339236c46a1 100644 (file)
@@ -144,7 +144,9 @@ static int qeth_set_coalesce(struct net_device *dev,
 }
 
 static void qeth_get_ringparam(struct net_device *dev,
-                              struct ethtool_ringparam *param)
+                              struct ethtool_ringparam *param,
+                              struct kernel_ethtool_ringparam *kernel_param,
+                              struct netlink_ext_ack *extack)
 {
        struct qeth_card *card = dev->ml_priv;
 
index 0b252b82988b4726a4d388f0cd3306c621bba595..a26f37a2716762164c2e936460c2106a37e3c829 100644 (file)
@@ -656,9 +656,13 @@ struct ethtool_ops {
                                struct kernel_ethtool_coalesce *,
                                struct netlink_ext_ack *);
        void    (*get_ringparam)(struct net_device *,
-                                struct ethtool_ringparam *);
+                                struct ethtool_ringparam *,
+                                struct kernel_ethtool_ringparam *,
+                                struct netlink_ext_ack *);
        int     (*set_ringparam)(struct net_device *,
-                                struct ethtool_ringparam *);
+                                struct ethtool_ringparam *,
+                                struct kernel_ethtool_ringparam *,
+                                struct netlink_ext_ack *);
        void    (*get_pause_stats)(struct net_device *dev,
                                   struct ethtool_pause_stats *pause_stats);
        void    (*get_pauseparam)(struct net_device *,
index 5c5f170a98512bf9f29f66b20c0cecd1b949a4ec..af2d4e022076d8a26e7882ed1a20224ada523f43 100644 (file)
@@ -1743,11 +1743,13 @@ static noinline_for_stack int ethtool_set_coalesce(struct net_device *dev,
 static int ethtool_get_ringparam(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_ringparam ringparam = { .cmd = ETHTOOL_GRINGPARAM };
+       struct kernel_ethtool_ringparam kernel_ringparam = {};
 
        if (!dev->ethtool_ops->get_ringparam)
                return -EOPNOTSUPP;
 
-       dev->ethtool_ops->get_ringparam(dev, &ringparam);
+       dev->ethtool_ops->get_ringparam(dev, &ringparam,
+                                       &kernel_ringparam, NULL);
 
        if (copy_to_user(useraddr, &ringparam, sizeof(ringparam)))
                return -EFAULT;
@@ -1757,6 +1759,7 @@ static int ethtool_get_ringparam(struct net_device *dev, void __user *useraddr)
 static int ethtool_set_ringparam(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_ringparam ringparam, max = { .cmd = ETHTOOL_GRINGPARAM };
+       struct kernel_ethtool_ringparam kernel_ringparam;
        int ret;
 
        if (!dev->ethtool_ops->set_ringparam || !dev->ethtool_ops->get_ringparam)
@@ -1765,7 +1768,7 @@ static int ethtool_set_ringparam(struct net_device *dev, void __user *useraddr)
        if (copy_from_user(&ringparam, useraddr, sizeof(ringparam)))
                return -EFAULT;
 
-       dev->ethtool_ops->get_ringparam(dev, &max);
+       dev->ethtool_ops->get_ringparam(dev, &max, &kernel_ringparam, NULL);
 
        /* ensure new ring parameters are within the maximums */
        if (ringparam.rx_pending > max.rx_max_pending ||
@@ -1774,7 +1777,8 @@ static int ethtool_set_ringparam(struct net_device *dev, void __user *useraddr)
            ringparam.tx_pending > max.tx_max_pending)
                return -EINVAL;
 
-       ret = dev->ethtool_ops->set_ringparam(dev, &ringparam);
+       ret = dev->ethtool_ops->set_ringparam(dev, &ringparam,
+                                             &kernel_ringparam, NULL);
        if (!ret)
                ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
        return ret;
index bd8e9a7530ebfe9477e5c498f00559f372ad4cd3..450b8866373d17d9318ca7802f946d36e646fc1e 100644 (file)
@@ -26,6 +26,7 @@ static int rings_prepare_data(const struct ethnl_req_info *req_base,
                              struct genl_info *info)
 {
        struct rings_reply_data *data = RINGS_REPDATA(reply_base);
+       struct netlink_ext_ack *extack = info ? info->extack : NULL;
        struct net_device *dev = reply_base->dev;
        int ret;
 
@@ -34,7 +35,8 @@ static int rings_prepare_data(const struct ethnl_req_info *req_base,
        ret = ethnl_ops_begin(dev);
        if (ret < 0)
                return ret;
-       dev->ethtool_ops->get_ringparam(dev, &data->ringparam);
+       dev->ethtool_ops->get_ringparam(dev, &data->ringparam,
+                                       &data->kernel_ringparam, extack);
        ethnl_ops_complete(dev);
 
        return 0;
@@ -142,7 +144,7 @@ int ethnl_set_rings(struct sk_buff *skb, struct genl_info *info)
        ret = ethnl_ops_begin(dev);
        if (ret < 0)
                goto out_rtnl;
-       ops->get_ringparam(dev, &ringparam);
+       ops->get_ringparam(dev, &ringparam, &kernel_ringparam, info->extack);
 
        ethnl_update_u32(&ringparam.rx_pending, tb[ETHTOOL_A_RINGS_RX], &mod);
        ethnl_update_u32(&ringparam.rx_mini_pending,
@@ -183,7 +185,8 @@ int ethnl_set_rings(struct sk_buff *skb, struct genl_info *info)
                goto out_ops;
        }
 
-       ret = dev->ethtool_ops->set_ringparam(dev, &ringparam);
+       ret = dev->ethtool_ops->set_ringparam(dev, &ringparam,
+                                             &kernel_ringparam, info->extack);
        if (ret < 0)
                goto out_ops;
        ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
index 99a2e30b3833a6c7a2bb90632cf2580ebe0b5c61..b2253df54413fb428d4ad4e7bdc4fd0177a2528a 100644 (file)
@@ -14,7 +14,9 @@
 #include "driver-ops.h"
 
 static int ieee80211_set_ringparam(struct net_device *dev,
-                                  struct ethtool_ringparam *rp)
+                                  struct ethtool_ringparam *rp,
+                                  struct kernel_ethtool_ringparam *kernel_rp,
+                                  struct netlink_ext_ack *extack)
 {
        struct ieee80211_local *local = wiphy_priv(dev->ieee80211_ptr->wiphy);
 
@@ -25,7 +27,9 @@ static int ieee80211_set_ringparam(struct net_device *dev,
 }
 
 static void ieee80211_get_ringparam(struct net_device *dev,
-                                   struct ethtool_ringparam *rp)
+                                   struct ethtool_ringparam *rp,
+                                   struct kernel_ethtool_ringparam *kernel_rp,
+                                   struct netlink_ext_ack *extack)
 {
        struct ieee80211_local *local = wiphy_priv(dev->ieee80211_ptr->wiphy);