ethtool: extend ringparam setting/getting API with rx_buf_len
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>
This commit is contained in:
parent
0b70c256eb
commit
7462494408
@ -1441,7 +1441,9 @@ flash_fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void vector_get_ringparam(struct net_device *netdev,
|
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);
|
struct vector_private *vp = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -20,7 +20,9 @@ static void c_can_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void c_can_get_ringparam(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);
|
struct c_can_priv *priv = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -1138,7 +1138,9 @@ typhoon_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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->rx_max_pending = RXENT_ENTRIES;
|
||||||
ering->tx_max_pending = TXLO_ENTRIES - 1;
|
ering->tx_max_pending = TXLO_ENTRIES - 1;
|
||||||
|
@ -465,7 +465,9 @@ static void ena_get_drvinfo(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ena_get_ringparam(struct net_device *netdev,
|
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);
|
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,
|
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);
|
struct ena_adapter *adapter = netdev_priv(netdev);
|
||||||
u32 new_tx_size, new_rx_size;
|
u32 new_tx_size, new_rx_size;
|
||||||
|
@ -860,7 +860,9 @@ static int pcnet32_nway_reset(struct net_device *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void pcnet32_get_ringparam(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);
|
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,
|
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);
|
struct pcnet32_private *lp = netdev_priv(dev);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
@ -619,8 +619,11 @@ static int xgbe_get_module_eeprom(struct net_device *netdev,
|
|||||||
return pdata->phy_if.module_eeprom(pdata, eeprom, data);
|
return pdata->phy_if.module_eeprom(pdata, eeprom, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xgbe_get_ringparam(struct net_device *netdev,
|
static void
|
||||||
struct ethtool_ringparam *ringparam)
|
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);
|
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,
|
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);
|
struct xgbe_prv_data *pdata = netdev_priv(netdev);
|
||||||
unsigned int rx, tx;
|
unsigned int rx, tx;
|
||||||
|
@ -812,7 +812,9 @@ static int aq_ethtool_set_pauseparam(struct net_device *ndev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void aq_get_ringparam(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_s *aq_nic = netdev_priv(ndev);
|
||||||
struct aq_nic_cfg_s *cfg;
|
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,
|
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);
|
struct aq_nic_s *aq_nic = netdev_priv(ndev);
|
||||||
const struct aq_hw_caps_s *hw_caps;
|
const struct aq_hw_caps_s *hw_caps;
|
||||||
|
@ -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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct atl1_tpd_ring *txdr = &adapter->tpd_ring;
|
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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct atl1_tpd_ring *tpdr = &adapter->tpd_ring;
|
struct atl1_tpd_ring *tpdr = &adapter->tpd_ring;
|
||||||
|
@ -1961,7 +1961,9 @@ static int b44_set_link_ksettings(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void b44_get_ringparam(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);
|
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,
|
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);
|
struct b44 *bp = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -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,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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;
|
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,
|
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;
|
struct bcm_enet_priv *priv;
|
||||||
int was_running;
|
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,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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;
|
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;
|
ering->tx_pending = priv->tx_ring_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bcm_enetsw_set_ringparam(struct net_device *dev,
|
static int
|
||||||
struct ethtool_ringparam *ering)
|
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;
|
struct bcm_enet_priv *priv;
|
||||||
int was_running;
|
int was_running;
|
||||||
|
@ -7318,7 +7318,9 @@ static int bnx2_set_coalesce(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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);
|
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
|
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);
|
struct bnx2 *bp = netdev_priv(dev);
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -1914,7 +1914,9 @@ static int bnx2x_set_coalesce(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void bnx2x_get_ringparam(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);
|
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,
|
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);
|
struct bnx2x *bp = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -775,7 +775,9 @@ skip_tpa_stats:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void bnxt_get_ringparam(struct net_device *dev,
|
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);
|
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,
|
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);
|
struct bnxt *bp = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -12390,7 +12390,10 @@ static int tg3_nway_reset(struct net_device *dev)
|
|||||||
return r;
|
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);
|
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;
|
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);
|
struct tg3 *tp = netdev_priv(dev);
|
||||||
int i, irq_sync = 0, err = 0;
|
int i, irq_sync = 0, err = 0;
|
||||||
|
@ -405,7 +405,9 @@ static int bnad_set_coalesce(struct net_device *netdev,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
bnad_get_ringparam(struct net_device *netdev,
|
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);
|
struct bnad *bnad = netdev_priv(netdev);
|
||||||
|
|
||||||
@ -418,7 +420,9 @@ bnad_get_ringparam(struct net_device *netdev,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
bnad_set_ringparam(struct net_device *netdev,
|
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;
|
int i, current_err, err = 0;
|
||||||
struct bnad *bnad = netdev_priv(netdev);
|
struct bnad *bnad = netdev_priv(netdev);
|
||||||
|
@ -3135,7 +3135,9 @@ static int macb_set_link_ksettings(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void macb_get_ringparam(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);
|
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,
|
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);
|
struct macb *bp = netdev_priv(netdev);
|
||||||
u32 new_rx_size, new_tx_size;
|
u32 new_rx_size, new_tx_size;
|
||||||
|
@ -947,7 +947,9 @@ static int lio_set_phys_id(struct net_device *netdev,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
lio_ethtool_get_ringparam(struct net_device *netdev,
|
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 lio *lio = GET_LIO(netdev);
|
||||||
struct octeon_device *oct = lio->oct_dev;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int lio_ethtool_set_ringparam(struct net_device *netdev,
|
static int
|
||||||
struct ethtool_ringparam *ering)
|
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;
|
u32 rx_count, tx_count, rx_count_old, tx_count_old;
|
||||||
struct lio *lio = GET_LIO(netdev);
|
struct lio *lio = GET_LIO(netdev);
|
||||||
|
@ -467,7 +467,9 @@ static int nicvf_get_coalesce(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void nicvf_get_ringparam(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 nicvf *nic = netdev_priv(netdev);
|
||||||
struct queue_set *qs = nic->qs;
|
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,
|
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 nicvf *nic = netdev_priv(netdev);
|
||||||
struct queue_set *qs = nic->qs;
|
struct queue_set *qs = nic->qs;
|
||||||
|
@ -710,7 +710,9 @@ static int set_pauseparam(struct net_device *dev,
|
|||||||
return 0;
|
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;
|
struct adapter *adapter = dev->ml_priv;
|
||||||
int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
|
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];
|
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;
|
struct adapter *adapter = dev->ml_priv;
|
||||||
int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
|
int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
|
||||||
|
@ -1948,7 +1948,9 @@ static int set_pauseparam(struct net_device *dev,
|
|||||||
return 0;
|
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 port_info *pi = netdev_priv(dev);
|
||||||
struct adapter *adapter = pi->adapter;
|
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];
|
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 port_info *pi = netdev_priv(dev);
|
||||||
struct adapter *adapter = pi->adapter;
|
struct adapter *adapter = pi->adapter;
|
||||||
|
@ -890,7 +890,9 @@ static int set_pauseparam(struct net_device *dev,
|
|||||||
return 0;
|
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 port_info *pi = netdev_priv(dev);
|
||||||
const struct sge *s = &pi->adapter->sge;
|
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;
|
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;
|
int i;
|
||||||
const struct port_info *pi = netdev_priv(dev);
|
const struct port_info *pi = netdev_priv(dev);
|
||||||
|
@ -1591,7 +1591,9 @@ static void cxgb4vf_set_msglevel(struct net_device *dev, u32 msglevel)
|
|||||||
* first Queue Set.
|
* first Queue Set.
|
||||||
*/
|
*/
|
||||||
static void cxgb4vf_get_ringparam(struct net_device *dev,
|
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 port_info *pi = netdev_priv(dev);
|
||||||
const struct sge *s = &pi->adapter->sge;
|
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!
|
* device -- after vetting them of course!
|
||||||
*/
|
*/
|
||||||
static int cxgb4vf_set_ringparam(struct net_device *dev,
|
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);
|
const struct port_info *pi = netdev_priv(dev);
|
||||||
struct adapter *adapter = pi->adapter;
|
struct adapter *adapter = pi->adapter;
|
||||||
|
@ -177,7 +177,9 @@ static void enic_get_strings(struct net_device *netdev, u32 stringset,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void enic_get_ringparam(struct net_device *netdev,
|
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 enic *enic = netdev_priv(netdev);
|
||||||
struct vnic_enet_config *c = &enic->config;
|
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,
|
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 enic *enic = netdev_priv(netdev);
|
||||||
struct vnic_enet_config *c = &enic->config;
|
struct vnic_enet_config *c = &enic->config;
|
||||||
|
@ -2105,7 +2105,9 @@ static void gmac_get_pauseparam(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void gmac_get_ringparam(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);
|
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,
|
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);
|
struct gemini_ethernet_port *port = netdev_priv(netdev);
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
@ -683,7 +683,9 @@ static int be_get_link_ksettings(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void be_get_ringparam(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);
|
struct be_adapter *adapter = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -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,
|
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);
|
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,
|
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);
|
struct ethoc *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -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));
|
strlcpy(info->bus_info, dev_name(&netdev->dev), sizeof(info->bus_info));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ftgmac100_get_ringparam(struct net_device *netdev,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
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;
|
ering->tx_pending = priv->tx_q_entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ftgmac100_set_ringparam(struct net_device *netdev,
|
static int
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
struct ftgmac100 *priv = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -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,
|
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);
|
struct enetc_ndev_priv *priv = netdev_priv(ndev);
|
||||||
|
|
||||||
|
@ -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
|
* rx, rx_mini, and rx_jumbo rings are the same size, as mini and
|
||||||
* jumbo are ignored by the driver */
|
* jumbo are ignored by the driver */
|
||||||
static void gfar_gringparam(struct net_device *dev,
|
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_private *priv = netdev_priv(dev);
|
||||||
struct gfar_priv_tx_q *tx_queue = NULL;
|
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.
|
* necessary so that we don't mess things up while we're in motion.
|
||||||
*/
|
*/
|
||||||
static int gfar_sringparam(struct net_device *dev,
|
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);
|
struct gfar_private *priv = netdev_priv(dev);
|
||||||
int err = 0, i;
|
int err = 0, i;
|
||||||
|
@ -207,7 +207,9 @@ uec_get_regs(struct net_device *netdev,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
uec_get_ringparam(struct net_device *netdev,
|
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_private *ugeth = netdev_priv(netdev);
|
||||||
struct ucc_geth_info *ug_info = ugeth->ug_info;
|
struct ucc_geth_info *ug_info = ugeth->ug_info;
|
||||||
@ -226,7 +228,9 @@ uec_get_ringparam(struct net_device *netdev,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
uec_set_ringparam(struct net_device *netdev,
|
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_private *ugeth = netdev_priv(netdev);
|
||||||
struct ucc_geth_info *ug_info = ugeth->ug_info;
|
struct ucc_geth_info *ug_info = ugeth->ug_info;
|
||||||
|
@ -419,7 +419,9 @@ static int gve_set_channels(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void gve_get_ringparam(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);
|
struct gve_priv *priv = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -663,9 +663,13 @@ static void hns_nic_get_drvinfo(struct net_device *net_dev,
|
|||||||
* hns_get_ringparam - get ring parameter
|
* hns_get_ringparam - get ring parameter
|
||||||
* @net_dev: net device
|
* @net_dev: net device
|
||||||
* @param: ethtool parameter
|
* @param: ethtool parameter
|
||||||
|
* @kernel_param: ethtool external parameter
|
||||||
|
* @extack: netlink extended ACK report struct
|
||||||
*/
|
*/
|
||||||
static void hns_get_ringparam(struct net_device *net_dev,
|
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 hns_nic_priv *priv = netdev_priv(net_dev);
|
||||||
struct hnae_ae_ops *ops;
|
struct hnae_ae_ops *ops;
|
||||||
|
@ -643,7 +643,9 @@ static u32 hns3_get_link(struct net_device *netdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void hns3_get_ringparam(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 hns3_nic_priv *priv = netdev_priv(netdev);
|
||||||
struct hnae3_handle *h = priv->ae_handle;
|
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,
|
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 hns3_nic_priv *priv = netdev_priv(ndev);
|
||||||
struct hnae3_handle *h = priv->ae_handle;
|
struct hnae3_handle *h = priv->ae_handle;
|
||||||
|
@ -547,7 +547,9 @@ static void hinic_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void hinic_get_ringparam(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);
|
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,
|
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);
|
struct hinic_dev *nic_dev = netdev_priv(netdev);
|
||||||
u16 new_sq_depth, new_rq_depth;
|
u16 new_sq_depth, new_rq_depth;
|
||||||
|
@ -2137,8 +2137,11 @@ emac_ethtool_set_link_ksettings(struct net_device *ndev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void emac_ethtool_get_ringparam(struct net_device *ndev,
|
static void
|
||||||
struct ethtool_ringparam *rp)
|
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->rx_max_pending = rp->rx_pending = NUM_RX_BUFF;
|
||||||
rp->tx_max_pending = rp->tx_pending = NUM_TX_BUFF;
|
rp->tx_max_pending = rp->tx_pending = NUM_TX_BUFF;
|
||||||
|
@ -3088,7 +3088,9 @@ static u32 ibmvnic_get_link(struct net_device *netdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ibmvnic_get_ringparam(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);
|
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,
|
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);
|
struct ibmvnic_adapter *adapter = netdev_priv(netdev);
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -2557,7 +2557,9 @@ static int e100_set_eeprom(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void e100_get_ringparam(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 nic *nic = netdev_priv(netdev);
|
||||||
struct param_range *rfds = &nic->params.rfds;
|
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,
|
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 nic *nic = netdev_priv(netdev);
|
||||||
struct param_range *rfds = &nic->params.rfds;
|
struct param_range *rfds = &nic->params.rfds;
|
||||||
|
@ -539,7 +539,9 @@ static void e1000_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void e1000_get_ringparam(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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct e1000_hw *hw = &adapter->hw;
|
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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct e1000_hw *hw = &adapter->hw;
|
struct e1000_hw *hw = &adapter->hw;
|
||||||
|
@ -655,7 +655,9 @@ static void e1000_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void e1000_get_ringparam(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_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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct e1000_ring *temp_tx = NULL, *temp_rx = NULL;
|
struct e1000_ring *temp_tx = NULL, *temp_rx = NULL;
|
||||||
|
@ -502,7 +502,9 @@ static void fm10k_set_msglevel(struct net_device *netdev, u32 data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void fm10k_get_ringparam(struct net_device *netdev,
|
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);
|
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,
|
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_intfc *interface = netdev_priv(netdev);
|
||||||
struct fm10k_ring *temp_ring;
|
struct fm10k_ring *temp_ring;
|
||||||
|
@ -1916,7 +1916,9 @@ static void i40e_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void i40e_get_ringparam(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_netdev_priv *np = netdev_priv(netdev);
|
||||||
struct i40e_pf *pf = np->vsi->back;
|
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,
|
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_ring *tx_rings = NULL, *rx_rings = NULL;
|
||||||
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
||||||
|
@ -580,12 +580,16 @@ static void iavf_get_drvinfo(struct net_device *netdev,
|
|||||||
* iavf_get_ringparam - Get ring parameters
|
* iavf_get_ringparam - Get ring parameters
|
||||||
* @netdev: network interface device structure
|
* @netdev: network interface device structure
|
||||||
* @ring: ethtool ringparam 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,
|
* Returns current ring parameters. TX and RX rings are reported separately,
|
||||||
* but the number of rings is not reported.
|
* but the number of rings is not reported.
|
||||||
**/
|
**/
|
||||||
static void iavf_get_ringparam(struct net_device *netdev,
|
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);
|
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
|
* iavf_set_ringparam - Set ring parameters
|
||||||
* @netdev: network interface device structure
|
* @netdev: network interface device structure
|
||||||
* @ring: ethtool ringparam 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
|
* 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.
|
* number of rings is not specified, so all rings get the same settings.
|
||||||
**/
|
**/
|
||||||
static int iavf_set_ringparam(struct net_device *netdev,
|
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);
|
struct iavf_adapter *adapter = netdev_priv(netdev);
|
||||||
u32 new_rx_count, new_tx_count;
|
u32 new_rx_count, new_tx_count;
|
||||||
|
@ -2686,7 +2686,9 @@ ice_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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_netdev_priv *np = netdev_priv(netdev);
|
||||||
struct ice_vsi *vsi = np->vsi;
|
struct ice_vsi *vsi = np->vsi;
|
||||||
@ -2704,7 +2706,9 @@ ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
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_netdev_priv *np = netdev_priv(netdev);
|
||||||
struct ice_tx_ring *xdp_rings = NULL;
|
struct ice_tx_ring *xdp_rings = NULL;
|
||||||
|
@ -864,7 +864,9 @@ static void igb_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void igb_get_ringparam(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);
|
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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct igb_ring *temp_ring;
|
struct igb_ring *temp_ring;
|
||||||
|
@ -175,7 +175,9 @@ static void igbvf_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void igbvf_get_ringparam(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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct igbvf_ring *tx_ring = adapter->tx_ring;
|
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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct igbvf_ring *temp_ring;
|
struct igbvf_ring *temp_ring;
|
||||||
|
@ -567,8 +567,11 @@ static int igc_ethtool_set_eeprom(struct net_device *netdev,
|
|||||||
return ret_val;
|
return ret_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void igc_ethtool_get_ringparam(struct net_device *netdev,
|
static void
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
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;
|
ring->tx_pending = adapter->tx_ring_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int igc_ethtool_set_ringparam(struct net_device *netdev,
|
static int
|
||||||
struct ethtool_ringparam *ring)
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct igc_ring *temp_ring;
|
struct igc_ring *temp_ring;
|
||||||
|
@ -464,7 +464,9 @@ ixgb_get_drvinfo(struct net_device *netdev,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
ixgb_get_ringparam(struct net_device *netdev,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct ixgb_desc_ring *txdr = &adapter->tx_ring;
|
struct ixgb_desc_ring *txdr = &adapter->tx_ring;
|
||||||
@ -478,7 +480,9 @@ ixgb_get_ringparam(struct net_device *netdev,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
ixgb_set_ringparam(struct net_device *netdev,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct ixgb_desc_ring *txdr = &adapter->tx_ring;
|
struct ixgb_desc_ring *txdr = &adapter->tx_ring;
|
||||||
|
@ -1118,7 +1118,9 @@ static void ixgbe_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ixgbe_get_ringparam(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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct ixgbe_ring *tx_ring = adapter->tx_ring[0];
|
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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct ixgbe_ring *temp_ring;
|
struct ixgbe_ring *temp_ring;
|
||||||
|
@ -225,7 +225,9 @@ static void ixgbevf_get_drvinfo(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ixgbevf_get_ringparam(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);
|
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,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct ixgbevf_ring *tx_ring = NULL, *rx_ring = NULL;
|
struct ixgbevf_ring *tx_ring = NULL, *rx_ring = NULL;
|
||||||
|
@ -1638,7 +1638,9 @@ static int mv643xx_eth_set_coalesce(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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);
|
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
|
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);
|
struct mv643xx_eth_private *mp = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -4510,8 +4510,11 @@ static void mvneta_ethtool_get_drvinfo(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void mvneta_ethtool_get_ringparam(struct net_device *netdev,
|
static void
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
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;
|
ring->tx_pending = pp->tx_ring_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mvneta_ethtool_set_ringparam(struct net_device *dev,
|
static int
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
struct mvneta_port *pp = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -5431,8 +5431,11 @@ static void mvpp2_ethtool_get_drvinfo(struct net_device *dev,
|
|||||||
sizeof(drvinfo->bus_info));
|
sizeof(drvinfo->bus_info));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mvpp2_ethtool_get_ringparam(struct net_device *dev,
|
static void
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
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;
|
ring->tx_pending = port->tx_ring_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mvpp2_ethtool_set_ringparam(struct net_device *dev,
|
static int
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
struct mvpp2_port *port = netdev_priv(dev);
|
||||||
u16 prev_rx_ring_size = port->rx_ring_size;
|
u16 prev_rx_ring_size = port->rx_ring_size;
|
||||||
|
@ -360,7 +360,9 @@ static int otx2_set_pauseparam(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void otx2_get_ringparam(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_nic *pfvf = netdev_priv(netdev);
|
||||||
struct otx2_qset *qs = &pfvf->qset;
|
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,
|
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);
|
struct otx2_nic *pfvf = netdev_priv(netdev);
|
||||||
bool if_up = netif_running(netdev);
|
bool if_up = netif_running(netdev);
|
||||||
|
@ -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,
|
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);
|
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,
|
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);
|
struct skge_port *skge = netdev_priv(dev);
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
@ -4149,7 +4149,9 @@ static unsigned long roundup_ring_size(unsigned long pending)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void sky2_get_ringparam(struct net_device *dev,
|
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);
|
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,
|
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);
|
struct sky2_port *sky2 = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -1141,7 +1141,9 @@ static void mlx4_en_get_pauseparam(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int mlx4_en_set_ringparam(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_priv *priv = netdev_priv(dev);
|
||||||
struct mlx4_en_dev *mdev = priv->mdev;
|
struct mlx4_en_dev *mdev = priv->mdev;
|
||||||
@ -1208,7 +1210,9 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void mlx4_en_get_ringparam(struct net_device *dev,
|
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);
|
struct mlx4_en_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -314,7 +314,9 @@ void mlx5e_ethtool_get_ringparam(struct mlx5e_priv *priv,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void mlx5e_get_ringparam(struct net_device *dev,
|
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);
|
struct mlx5e_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
@ -380,7 +382,9 @@ unlock:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int mlx5e_set_ringparam(struct net_device *dev,
|
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);
|
struct mlx5e_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -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,
|
static void
|
||||||
struct ethtool_ringparam *param)
|
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);
|
struct mlx5e_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
mlx5e_ethtool_get_ringparam(priv, param);
|
mlx5e_ethtool_get_ringparam(priv, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mlx5e_rep_set_ringparam(struct net_device *dev,
|
static int
|
||||||
struct ethtool_ringparam *param)
|
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);
|
struct mlx5e_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -67,7 +67,9 @@ static void mlx5i_get_ethtool_stats(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int mlx5i_set_ringparam(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);
|
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,
|
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);
|
struct mlx5e_priv *priv = mlx5i_epriv(dev);
|
||||||
|
|
||||||
|
@ -33,8 +33,11 @@ static void mlxbf_gige_get_regs(struct net_device *netdev,
|
|||||||
memcpy_fromio(p, priv->base, MLXBF_GIGE_MMIO_REG_SZ);
|
memcpy_fromio(p, priv->base, MLXBF_GIGE_MMIO_REG_SZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlxbf_gige_get_ringparam(struct net_device *netdev,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
struct mlxbf_gige *priv = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -6317,11 +6317,15 @@ static int netdev_set_pauseparam(struct net_device *dev,
|
|||||||
* netdev_get_ringparam - get tx/rx ring parameters
|
* netdev_get_ringparam - get tx/rx ring parameters
|
||||||
* @dev: Network device.
|
* @dev: Network device.
|
||||||
* @ring: Ethtool RING settings data structure.
|
* @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.
|
* This procedure returns the TX/RX ring settings.
|
||||||
*/
|
*/
|
||||||
static void netdev_get_ringparam(struct net_device *dev,
|
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_priv *priv = netdev_priv(dev);
|
||||||
struct dev_info *hw_priv = priv->adapter;
|
struct dev_info *hw_priv = priv->adapter;
|
||||||
|
@ -1704,7 +1704,9 @@ myri10ge_set_pauseparam(struct net_device *netdev,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
myri10ge_get_ringparam(struct net_device *netdev,
|
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);
|
struct myri10ge_priv *mgp = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -5461,8 +5461,11 @@ static int s2io_ethtool_set_led(struct net_device *dev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void s2io_ethtool_gringparam(struct net_device *dev,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
struct s2io_nic *sp = netdev_priv(dev);
|
||||||
int i, tx_desc_count = 0, rx_desc_count = 0;
|
int i, tx_desc_count = 0, rx_desc_count = 0;
|
||||||
|
@ -381,7 +381,9 @@ err_bad_set:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void nfp_net_get_ringparam(struct net_device *netdev,
|
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);
|
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,
|
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);
|
struct nfp_net *nn = netdev_priv(netdev);
|
||||||
u32 rxd_cnt, txd_cnt;
|
u32 rxd_cnt, txd_cnt;
|
||||||
|
@ -4651,7 +4651,10 @@ static int nv_nway_reset(struct net_device *dev)
|
|||||||
return ret;
|
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);
|
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;
|
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);
|
struct fe_priv *np = netdev_priv(dev);
|
||||||
u8 __iomem *base = get_hwbase(dev);
|
u8 __iomem *base = get_hwbase(dev);
|
||||||
|
@ -270,9 +270,13 @@ static int pch_gbe_nway_reset(struct net_device *netdev)
|
|||||||
* pch_gbe_get_ringparam - Report ring sizes
|
* pch_gbe_get_ringparam - Report ring sizes
|
||||||
* @netdev: Network interface device structure
|
* @netdev: Network interface device structure
|
||||||
* @ring: Ring param structure
|
* @ring: Ring param structure
|
||||||
|
* @kernel_ring: Ring external param structure
|
||||||
|
* @extack: netlink handle
|
||||||
*/
|
*/
|
||||||
static void pch_gbe_get_ringparam(struct net_device *netdev,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct pch_gbe_tx_ring *txdr = adapter->tx_ring;
|
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
|
* pch_gbe_set_ringparam - Set ring sizes
|
||||||
* @netdev: Network interface device structure
|
* @netdev: Network interface device structure
|
||||||
* @ring: Ring param structure
|
* @ring: Ring param structure
|
||||||
|
* @kernel_ring: Ring external param structure
|
||||||
|
* @extack: netlink handle
|
||||||
* Returns
|
* Returns
|
||||||
* 0: Successful.
|
* 0: Successful.
|
||||||
* Negative value: Failed.
|
* Negative value: Failed.
|
||||||
*/
|
*/
|
||||||
static int pch_gbe_set_ringparam(struct net_device *netdev,
|
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_adapter *adapter = netdev_priv(netdev);
|
||||||
struct pch_gbe_tx_ring *txdr, *tx_old;
|
struct pch_gbe_tx_ring *txdr, *tx_old;
|
||||||
|
@ -69,7 +69,9 @@ pasemi_mac_ethtool_set_msglevel(struct net_device *netdev,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
pasemi_mac_ethtool_get_ringparam(struct net_device *netdev,
|
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);
|
struct pasemi_mac *mac = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -512,7 +512,9 @@ static int ionic_set_coalesce(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ionic_get_ringparam(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);
|
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,
|
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_lif *lif = netdev_priv(netdev);
|
||||||
struct ionic_queue_params qparam;
|
struct ionic_queue_params qparam;
|
||||||
|
@ -392,7 +392,9 @@ netxen_nic_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
netxen_nic_get_ringparam(struct net_device *dev,
|
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);
|
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
|
static int
|
||||||
netxen_nic_set_ringparam(struct net_device *dev,
|
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);
|
struct netxen_adapter *adapter = netdev_priv(dev);
|
||||||
u16 max_rcv_desc = MAX_RCV_DESCRIPTORS_10G;
|
u16 max_rcv_desc = MAX_RCV_DESCRIPTORS_10G;
|
||||||
|
@ -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,
|
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);
|
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,
|
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);
|
struct qede_dev *edev = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -632,7 +632,9 @@ qlcnic_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
qlcnic_get_ringparam(struct net_device *dev,
|
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);
|
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
|
static int
|
||||||
qlcnic_set_ringparam(struct net_device *dev,
|
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);
|
struct qlcnic_adapter *adapter = netdev_priv(dev);
|
||||||
u16 num_rxd, num_jumbo_rxd, num_txd;
|
u16 num_rxd, num_jumbo_rxd, num_txd;
|
||||||
|
@ -133,7 +133,9 @@ static int emac_nway_reset(struct net_device *netdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void emac_get_ringparam(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);
|
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,
|
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);
|
struct emac_adapter *adpt = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -246,7 +246,9 @@ qcaspi_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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);
|
struct qcaspi *qca = netdev_priv(dev);
|
||||||
|
|
||||||
@ -257,7 +259,9 @@ qcaspi_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
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;
|
const struct net_device_ops *ops = dev->netdev_ops;
|
||||||
struct qcaspi *qca = netdev_priv(dev);
|
struct qcaspi *qca = netdev_priv(dev);
|
||||||
|
@ -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,
|
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->rx_max_pending = CP_RX_RING_SIZE;
|
||||||
ring->tx_max_pending = CP_TX_RING_SIZE;
|
ring->tx_max_pending = CP_TX_RING_SIZE;
|
||||||
|
@ -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,
|
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_max_pending = NUM_RX_DESC;
|
||||||
data->rx_pending = NUM_RX_DESC;
|
data->rx_pending = NUM_RX_DESC;
|
||||||
|
@ -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,
|
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);
|
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,
|
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);
|
struct ravb_private *priv = netdev_priv(ndev);
|
||||||
const struct ravb_hw_info *info = priv->info;
|
const struct ravb_hw_info *info = priv->info;
|
||||||
|
@ -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,
|
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);
|
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,
|
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);
|
struct sh_eth_private *mdp = netdev_priv(ndev);
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -20,8 +20,11 @@
|
|||||||
/* This is the maximum number of descriptor rings supported by the QDMA */
|
/* This is the maximum number of descriptor rings supported by the QDMA */
|
||||||
#define EFX_EF100_MAX_DMAQ_SIZE 16384UL
|
#define EFX_EF100_MAX_DMAQ_SIZE 16384UL
|
||||||
|
|
||||||
static void ef100_ethtool_get_ringparam(struct net_device *net_dev,
|
static void
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
struct efx_nic *efx = netdev_priv(net_dev);
|
||||||
|
|
||||||
|
@ -157,8 +157,11 @@ static int efx_ethtool_set_coalesce(struct net_device *net_dev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void efx_ethtool_get_ringparam(struct net_device *net_dev,
|
static void
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
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;
|
ring->tx_pending = efx->txq_entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int efx_ethtool_set_ringparam(struct net_device *net_dev,
|
static int
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
struct efx_nic *efx = netdev_priv(net_dev);
|
||||||
u32 txq_entries;
|
u32 txq_entries;
|
||||||
|
@ -637,8 +637,11 @@ static int ef4_ethtool_set_coalesce(struct net_device *net_dev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ef4_ethtool_get_ringparam(struct net_device *net_dev,
|
static void
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
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;
|
ring->tx_pending = efx->txq_entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ef4_ethtool_set_ringparam(struct net_device *net_dev,
|
static int
|
||||||
struct ethtool_ringparam *ring)
|
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);
|
struct ef4_nic *efx = netdev_priv(net_dev);
|
||||||
u32 txq_entries;
|
u32 txq_entries;
|
||||||
|
@ -463,7 +463,9 @@ static int stmmac_nway_reset(struct net_device *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void stmmac_get_ringparam(struct net_device *netdev,
|
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);
|
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,
|
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 ||
|
if (ring->rx_mini_pending || ring->rx_jumbo_pending ||
|
||||||
ring->rx_pending < DMA_MIN_RX_SIZE ||
|
ring->rx_pending < DMA_MIN_RX_SIZE ||
|
||||||
|
@ -2245,9 +2245,13 @@ static inline int bdx_tx_fifo_size_to_packets(int tx_size)
|
|||||||
* bdx_get_ringparam - report ring sizes
|
* bdx_get_ringparam - report ring sizes
|
||||||
* @netdev
|
* @netdev
|
||||||
* @ring
|
* @ring
|
||||||
|
* @kernel_ring
|
||||||
|
* @extack
|
||||||
*/
|
*/
|
||||||
static void
|
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);
|
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
|
* bdx_set_ringparam - set ring sizes
|
||||||
* @netdev
|
* @netdev
|
||||||
* @ring
|
* @ring
|
||||||
|
* @kernel_ring
|
||||||
|
* @extack
|
||||||
*/
|
*/
|
||||||
static int
|
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);
|
struct bdx_priv *priv = netdev_priv(netdev);
|
||||||
int rx_size = 0;
|
int rx_size = 0;
|
||||||
|
@ -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);
|
return am65_cpsw_nuss_update_tx_chns(common, chs->tx_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void am65_cpsw_get_ringparam(struct net_device *ndev,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
struct am65_cpsw_common *common = am65_ndev_to_common(ndev);
|
||||||
|
|
||||||
|
@ -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,
|
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);
|
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,
|
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);
|
struct cpmac_priv *priv = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -658,7 +658,9 @@ err:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void cpsw_get_ringparam(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)
|
||||||
{
|
{
|
||||||
struct cpsw_priv *priv = netdev_priv(ndev);
|
struct cpsw_priv *priv = netdev_priv(ndev);
|
||||||
struct cpsw_common *cpsw = priv->cpsw;
|
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,
|
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);
|
struct cpsw_common *cpsw = ndev_to_cpsw(ndev);
|
||||||
int descs_num, ret;
|
int descs_num, ret;
|
||||||
|
@ -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_set_eee(struct net_device *ndev, struct ethtool_eee *edata);
|
||||||
int cpsw_nway_reset(struct net_device *ndev);
|
int cpsw_nway_reset(struct net_device *ndev);
|
||||||
void cpsw_get_ringparam(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,
|
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,
|
int cpsw_set_channels_common(struct net_device *ndev,
|
||||||
struct ethtool_channels *chs,
|
struct ethtool_channels *chs,
|
||||||
cpdma_handler_fn rx_handler);
|
cpdma_handler_fn rx_handler);
|
||||||
|
@ -110,7 +110,9 @@ spider_net_ethtool_nway_reset(struct net_device *netdev)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
spider_net_ethtool_get_ringparam(struct net_device *netdev,
|
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);
|
struct spider_net_card *card = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -1276,8 +1276,11 @@ static const struct attribute_group temac_attr_group = {
|
|||||||
* ethtool support
|
* ethtool support
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void ll_temac_ethtools_get_ringparam(struct net_device *ndev,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
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;
|
ering->tx_pending = lp->tx_bd_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ll_temac_ethtools_set_ringparam(struct net_device *ndev,
|
static int
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
struct temac_local *lp = netdev_priv(ndev);
|
||||||
|
|
||||||
|
@ -1323,8 +1323,11 @@ static void axienet_ethtools_get_regs(struct net_device *ndev,
|
|||||||
data[39] = axienet_dma_in32(lp, XAXIDMA_RX_TDESC_OFFSET);
|
data[39] = axienet_dma_in32(lp, XAXIDMA_RX_TDESC_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void axienet_ethtools_get_ringparam(struct net_device *ndev,
|
static void
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
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;
|
ering->tx_pending = lp->tx_bd_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int axienet_ethtools_set_ringparam(struct net_device *ndev,
|
static int
|
||||||
struct ethtool_ringparam *ering)
|
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);
|
struct axienet_local *lp = netdev_priv(ndev);
|
||||||
|
|
||||||
|
@ -1858,7 +1858,9 @@ static void __netvsc_get_ringparam(struct netvsc_device *nvdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void netvsc_get_ringparam(struct net_device *ndev,
|
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 net_device_context *ndevctx = netdev_priv(ndev);
|
||||||
struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
|
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,
|
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 net_device_context *ndevctx = netdev_priv(ndev);
|
||||||
struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
|
struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
|
||||||
|
@ -65,7 +65,9 @@ static int nsim_set_coalesce(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void nsim_get_ringparam(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);
|
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,
|
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);
|
struct netdevsim *ns = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -8983,7 +8983,9 @@ static int rtl8152_set_tunable(struct net_device *netdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void rtl8152_get_ringparam(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);
|
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,
|
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);
|
struct r8152 *tp = netdev_priv(netdev);
|
||||||
|
|
||||||
|
@ -2174,7 +2174,9 @@ static void virtnet_cpu_notif_remove(struct virtnet_info *vi)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void virtnet_get_ringparam(struct net_device *dev,
|
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);
|
struct virtnet_info *vi = netdev_priv(dev);
|
||||||
|
|
||||||
|
@ -575,10 +575,11 @@ vmxnet3_get_link_ksettings(struct net_device *netdev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
vmxnet3_get_ringparam(struct net_device *netdev,
|
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);
|
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;
|
param->rx_jumbo_pending = adapter->rx_ring2_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
vmxnet3_set_ringparam(struct net_device *netdev,
|
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);
|
struct vmxnet3_adapter *adapter = netdev_priv(netdev);
|
||||||
u32 new_tx_ring_size, new_rx_ring_size, new_rx_ring2_size;
|
u32 new_tx_ring_size, new_rx_ring_size, new_rx_ring2_size;
|
||||||
|
@ -144,7 +144,9 @@ static int qeth_set_coalesce(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void qeth_get_ringparam(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;
|
struct qeth_card *card = dev->ml_priv;
|
||||||
|
|
||||||
|
@ -656,9 +656,13 @@ struct ethtool_ops {
|
|||||||
struct kernel_ethtool_coalesce *,
|
struct kernel_ethtool_coalesce *,
|
||||||
struct netlink_ext_ack *);
|
struct netlink_ext_ack *);
|
||||||
void (*get_ringparam)(struct net_device *,
|
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 *,
|
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,
|
void (*get_pause_stats)(struct net_device *dev,
|
||||||
struct ethtool_pause_stats *pause_stats);
|
struct ethtool_pause_stats *pause_stats);
|
||||||
void (*get_pauseparam)(struct net_device *,
|
void (*get_pauseparam)(struct net_device *,
|
||||||
|
@ -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)
|
static int ethtool_get_ringparam(struct net_device *dev, void __user *useraddr)
|
||||||
{
|
{
|
||||||
struct ethtool_ringparam ringparam = { .cmd = ETHTOOL_GRINGPARAM };
|
struct ethtool_ringparam ringparam = { .cmd = ETHTOOL_GRINGPARAM };
|
||||||
|
struct kernel_ethtool_ringparam kernel_ringparam = {};
|
||||||
|
|
||||||
if (!dev->ethtool_ops->get_ringparam)
|
if (!dev->ethtool_ops->get_ringparam)
|
||||||
return -EOPNOTSUPP;
|
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)))
|
if (copy_to_user(useraddr, &ringparam, sizeof(ringparam)))
|
||||||
return -EFAULT;
|
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)
|
static int ethtool_set_ringparam(struct net_device *dev, void __user *useraddr)
|
||||||
{
|
{
|
||||||
struct ethtool_ringparam ringparam, max = { .cmd = ETHTOOL_GRINGPARAM };
|
struct ethtool_ringparam ringparam, max = { .cmd = ETHTOOL_GRINGPARAM };
|
||||||
|
struct kernel_ethtool_ringparam kernel_ringparam;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!dev->ethtool_ops->set_ringparam || !dev->ethtool_ops->get_ringparam)
|
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)))
|
if (copy_from_user(&ringparam, useraddr, sizeof(ringparam)))
|
||||||
return -EFAULT;
|
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 */
|
/* ensure new ring parameters are within the maximums */
|
||||||
if (ringparam.rx_pending > max.rx_max_pending ||
|
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)
|
ringparam.tx_pending > max.tx_max_pending)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
ret = dev->ethtool_ops->set_ringparam(dev, &ringparam);
|
ret = dev->ethtool_ops->set_ringparam(dev, &ringparam,
|
||||||
|
&kernel_ringparam, NULL);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
|
ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -26,6 +26,7 @@ static int rings_prepare_data(const struct ethnl_req_info *req_base,
|
|||||||
struct genl_info *info)
|
struct genl_info *info)
|
||||||
{
|
{
|
||||||
struct rings_reply_data *data = RINGS_REPDATA(reply_base);
|
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;
|
struct net_device *dev = reply_base->dev;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -34,7 +35,8 @@ static int rings_prepare_data(const struct ethnl_req_info *req_base,
|
|||||||
ret = ethnl_ops_begin(dev);
|
ret = ethnl_ops_begin(dev);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
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);
|
ethnl_ops_complete(dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -142,7 +144,7 @@ int ethnl_set_rings(struct sk_buff *skb, struct genl_info *info)
|
|||||||
ret = ethnl_ops_begin(dev);
|
ret = ethnl_ops_begin(dev);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out_rtnl;
|
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_pending, tb[ETHTOOL_A_RINGS_RX], &mod);
|
||||||
ethnl_update_u32(&ringparam.rx_mini_pending,
|
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;
|
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)
|
if (ret < 0)
|
||||||
goto out_ops;
|
goto out_ops;
|
||||||
ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
|
ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
|
||||||
|
@ -14,7 +14,9 @@
|
|||||||
#include "driver-ops.h"
|
#include "driver-ops.h"
|
||||||
|
|
||||||
static int ieee80211_set_ringparam(struct net_device *dev,
|
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);
|
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,
|
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);
|
struct ieee80211_local *local = wiphy_priv(dev->ieee80211_ptr->wiphy);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user