|
@@ -973,6 +973,11 @@ static u32 mlx4_en_get_rxfh_indir_size(struct net_device *dev)
|
|
|
return priv->rx_ring_num;
|
|
|
}
|
|
|
|
|
|
+static u32 mlx4_en_get_rxfh_key_size(struct net_device *netdev)
|
|
|
+{
|
|
|
+ return MLX4_EN_RSS_KEY_SIZE;
|
|
|
+}
|
|
|
+
|
|
|
static int mlx4_en_get_rxfh(struct net_device *dev, u32 *ring_index, u8 *key)
|
|
|
{
|
|
|
struct mlx4_en_priv *priv = netdev_priv(dev);
|
|
@@ -988,7 +993,8 @@ static int mlx4_en_get_rxfh(struct net_device *dev, u32 *ring_index, u8 *key)
|
|
|
ring_index[n] = rss_map->qps[n % rss_rings].qpn -
|
|
|
rss_map->base_qpn;
|
|
|
}
|
|
|
-
|
|
|
+ if (key)
|
|
|
+ netdev_rss_key_fill(key, MLX4_EN_RSS_KEY_SIZE);
|
|
|
return err;
|
|
|
}
|
|
|
|
|
@@ -1799,6 +1805,7 @@ const struct ethtool_ops mlx4_en_ethtool_ops = {
|
|
|
.get_rxnfc = mlx4_en_get_rxnfc,
|
|
|
.set_rxnfc = mlx4_en_set_rxnfc,
|
|
|
.get_rxfh_indir_size = mlx4_en_get_rxfh_indir_size,
|
|
|
+ .get_rxfh_key_size = mlx4_en_get_rxfh_key_size,
|
|
|
.get_rxfh = mlx4_en_get_rxfh,
|
|
|
.set_rxfh = mlx4_en_set_rxfh,
|
|
|
.get_channels = mlx4_en_get_channels,
|