eth: mvpp2: migrate to new RXFH callbacks

Migrate to new callbacks added by commit 9bb00786fc ("net: ethtool:
add dedicated callbacks for getting and setting rxfh fields").

Reviewed-by: Joe Damato <joe@dama.to>
Link: https://patch.msgid.link/20250617014848.436741-3-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jakub Kicinski 2025-06-16 18:48:45 -07:00
parent b82d92dd71
commit b6f7e4fafe
3 changed files with 33 additions and 10 deletions

View File

@ -1618,7 +1618,8 @@ int mvpp22_port_rss_ctx_indir_get(struct mvpp2_port *port, u32 port_ctx,
return 0;
}
int mvpp2_ethtool_rxfh_set(struct mvpp2_port *port, struct ethtool_rxnfc *info)
int mvpp2_ethtool_rxfh_set(struct mvpp2_port *port,
const struct ethtool_rxfh_fields *info)
{
u16 hash_opts = 0;
u32 flow_type;
@ -1656,7 +1657,8 @@ int mvpp2_ethtool_rxfh_set(struct mvpp2_port *port, struct ethtool_rxnfc *info)
return mvpp2_port_rss_hash_opts_set(port, flow_type, hash_opts);
}
int mvpp2_ethtool_rxfh_get(struct mvpp2_port *port, struct ethtool_rxnfc *info)
int mvpp2_ethtool_rxfh_get(struct mvpp2_port *port,
struct ethtool_rxfh_fields *info)
{
unsigned long hash_opts;
u32 flow_type;

View File

@ -272,8 +272,10 @@ int mvpp22_port_rss_ctx_indir_set(struct mvpp2_port *port, u32 rss_ctx,
int mvpp22_port_rss_ctx_indir_get(struct mvpp2_port *port, u32 rss_ctx,
u32 *indir);
int mvpp2_ethtool_rxfh_get(struct mvpp2_port *port, struct ethtool_rxnfc *info);
int mvpp2_ethtool_rxfh_set(struct mvpp2_port *port, struct ethtool_rxnfc *info);
int mvpp2_ethtool_rxfh_get(struct mvpp2_port *port,
struct ethtool_rxfh_fields *info);
int mvpp2_ethtool_rxfh_set(struct mvpp2_port *port,
const struct ethtool_rxfh_fields *info);
void mvpp2_cls_init(struct mvpp2 *priv);

View File

@ -5588,9 +5588,6 @@ static int mvpp2_ethtool_get_rxnfc(struct net_device *dev,
return -EOPNOTSUPP;
switch (info->cmd) {
case ETHTOOL_GRXFH:
ret = mvpp2_ethtool_rxfh_get(port, info);
break;
case ETHTOOL_GRXRINGS:
info->data = port->nrxqs;
break;
@ -5628,9 +5625,6 @@ static int mvpp2_ethtool_set_rxnfc(struct net_device *dev,
return -EOPNOTSUPP;
switch (info->cmd) {
case ETHTOOL_SRXFH:
ret = mvpp2_ethtool_rxfh_set(port, info);
break;
case ETHTOOL_SRXCLSRLINS:
ret = mvpp2_ethtool_cls_rule_ins(port, info);
break;
@ -5747,6 +5741,29 @@ static int mvpp2_ethtool_set_rxfh(struct net_device *dev,
return mvpp2_modify_rxfh_context(dev, NULL, rxfh, extack);
}
static int mvpp2_ethtool_get_rxfh_fields(struct net_device *dev,
struct ethtool_rxfh_fields *info)
{
struct mvpp2_port *port = netdev_priv(dev);
if (!mvpp22_rss_is_supported(port))
return -EOPNOTSUPP;
return mvpp2_ethtool_rxfh_get(port, info);
}
static int mvpp2_ethtool_set_rxfh_fields(struct net_device *dev,
const struct ethtool_rxfh_fields *info,
struct netlink_ext_ack *extack)
{
struct mvpp2_port *port = netdev_priv(dev);
if (!mvpp22_rss_is_supported(port))
return -EOPNOTSUPP;
return mvpp2_ethtool_rxfh_set(port, info);
}
static int mvpp2_ethtool_get_eee(struct net_device *dev,
struct ethtool_keee *eee)
{
@ -5813,6 +5830,8 @@ static const struct ethtool_ops mvpp2_eth_tool_ops = {
.get_rxfh_indir_size = mvpp2_ethtool_get_rxfh_indir_size,
.get_rxfh = mvpp2_ethtool_get_rxfh,
.set_rxfh = mvpp2_ethtool_set_rxfh,
.get_rxfh_fields = mvpp2_ethtool_get_rxfh_fields,
.set_rxfh_fields = mvpp2_ethtool_set_rxfh_fields,
.create_rxfh_context = mvpp2_create_rxfh_context,
.modify_rxfh_context = mvpp2_modify_rxfh_context,
.remove_rxfh_context = mvpp2_remove_rxfh_context,