mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
eth: benet: migrate to new RXFH callbacks
Migrate to new callbacks added by commit 9bb00786fc ("net: ethtool:
add dedicated callbacks for getting and setting rxfh fields").
The driver has no other RXNFC functionality so the SET callback can
be now removed.
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250618203823.1336156-5-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
861b948ac1
commit
92a9565265
|
|
@ -1073,10 +1073,19 @@ static void be_set_msg_level(struct net_device *netdev, u32 level)
|
|||
adapter->msg_enable = level;
|
||||
}
|
||||
|
||||
static u64 be_get_rss_hash_opts(struct be_adapter *adapter, u64 flow_type)
|
||||
static int be_get_rxfh_fields(struct net_device *netdev,
|
||||
struct ethtool_rxfh_fields *cmd)
|
||||
{
|
||||
struct be_adapter *adapter = netdev_priv(netdev);
|
||||
u64 flow_type = cmd->flow_type;
|
||||
u64 data = 0;
|
||||
|
||||
if (!be_multi_rxq(adapter)) {
|
||||
dev_info(&adapter->pdev->dev,
|
||||
"ethtool::get_rxfh: RX flow hashing is disabled\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (flow_type) {
|
||||
case TCP_V4_FLOW:
|
||||
if (adapter->rss_info.rss_flags & RSS_ENABLE_IPV4)
|
||||
|
|
@ -1104,7 +1113,8 @@ static u64 be_get_rss_hash_opts(struct be_adapter *adapter, u64 flow_type)
|
|||
break;
|
||||
}
|
||||
|
||||
return data;
|
||||
cmd->data = data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int be_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
|
||||
|
|
@ -1119,9 +1129,6 @@ static int be_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
|
|||
}
|
||||
|
||||
switch (cmd->cmd) {
|
||||
case ETHTOOL_GRXFH:
|
||||
cmd->data = be_get_rss_hash_opts(adapter, cmd->flow_type);
|
||||
break;
|
||||
case ETHTOOL_GRXRINGS:
|
||||
cmd->data = adapter->num_rx_qs;
|
||||
break;
|
||||
|
|
@ -1132,11 +1139,19 @@ static int be_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int be_set_rss_hash_opts(struct be_adapter *adapter,
|
||||
struct ethtool_rxnfc *cmd)
|
||||
static int be_set_rxfh_fields(struct net_device *netdev,
|
||||
const struct ethtool_rxfh_fields *cmd,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
int status;
|
||||
struct be_adapter *adapter = netdev_priv(netdev);
|
||||
u32 rss_flags = adapter->rss_info.rss_flags;
|
||||
int status;
|
||||
|
||||
if (!be_multi_rxq(adapter)) {
|
||||
dev_err(&adapter->pdev->dev,
|
||||
"ethtool::set_rxfh: RX flow hashing is disabled\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (cmd->data != L3_RSS_FLAGS &&
|
||||
cmd->data != (L3_RSS_FLAGS | L4_RSS_FLAGS))
|
||||
|
|
@ -1195,28 +1210,6 @@ static int be_set_rss_hash_opts(struct be_adapter *adapter,
|
|||
return be_cmd_status(status);
|
||||
}
|
||||
|
||||
static int be_set_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd)
|
||||
{
|
||||
struct be_adapter *adapter = netdev_priv(netdev);
|
||||
int status = 0;
|
||||
|
||||
if (!be_multi_rxq(adapter)) {
|
||||
dev_err(&adapter->pdev->dev,
|
||||
"ethtool::set_rxnfc: RX flow hashing is disabled\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (cmd->cmd) {
|
||||
case ETHTOOL_SRXFH:
|
||||
status = be_set_rss_hash_opts(adapter, cmd);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static void be_get_channels(struct net_device *netdev,
|
||||
struct ethtool_channels *ch)
|
||||
{
|
||||
|
|
@ -1449,7 +1442,8 @@ const struct ethtool_ops be_ethtool_ops = {
|
|||
.flash_device = be_do_flash,
|
||||
.self_test = be_self_test,
|
||||
.get_rxnfc = be_get_rxnfc,
|
||||
.set_rxnfc = be_set_rxnfc,
|
||||
.get_rxfh_fields = be_get_rxfh_fields,
|
||||
.set_rxfh_fields = be_set_rxfh_fields,
|
||||
.get_rxfh_indir_size = be_get_rxfh_indir_size,
|
||||
.get_rxfh_key_size = be_get_rxfh_key_size,
|
||||
.get_rxfh = be_get_rxfh,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user