Skip to content

Commit 7267aa6

Browse files
Edward Creekuba-moo
authored andcommitted
sfc: implement ethtool get/set RX ring size for EF100 reps
It's not truly a ring, but the maximum length of the list of queued RX SKBs is analogous to an RX ring size, so use that API to configure it. Signed-off-by: Edward Cree <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
1 parent e37f3b1 commit 7267aa6

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

drivers/net/ethernet/sfc/ef100_rep.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,37 @@ static void efx_ef100_rep_ethtool_set_msglevel(struct net_device *net_dev,
150150
efv->msg_enable = msg_enable;
151151
}
152152

153+
static void efx_ef100_rep_ethtool_get_ringparam(struct net_device *net_dev,
154+
struct ethtool_ringparam *ring,
155+
struct kernel_ethtool_ringparam *kring,
156+
struct netlink_ext_ack *ext_ack)
157+
{
158+
struct efx_rep *efv = netdev_priv(net_dev);
159+
160+
ring->rx_max_pending = U32_MAX;
161+
ring->rx_pending = efv->rx_pring_size;
162+
}
163+
164+
static int efx_ef100_rep_ethtool_set_ringparam(struct net_device *net_dev,
165+
struct ethtool_ringparam *ring,
166+
struct kernel_ethtool_ringparam *kring,
167+
struct netlink_ext_ack *ext_ack)
168+
{
169+
struct efx_rep *efv = netdev_priv(net_dev);
170+
171+
if (ring->rx_mini_pending || ring->rx_jumbo_pending || ring->tx_pending)
172+
return -EINVAL;
173+
174+
efv->rx_pring_size = ring->rx_pending;
175+
return 0;
176+
}
177+
153178
static const struct ethtool_ops efx_ef100_rep_ethtool_ops = {
154179
.get_drvinfo = efx_ef100_rep_get_drvinfo,
155180
.get_msglevel = efx_ef100_rep_ethtool_get_msglevel,
156181
.set_msglevel = efx_ef100_rep_ethtool_set_msglevel,
182+
.get_ringparam = efx_ef100_rep_ethtool_get_ringparam,
183+
.set_ringparam = efx_ef100_rep_ethtool_set_ringparam,
157184
};
158185

159186
static struct efx_rep *efx_ef100_rep_create_netdev(struct efx_nic *efx,

0 commit comments

Comments
 (0)