Page MenuHomeFreeBSD

D59798.id187041.diff
No OneTemporary

D59798.id187041.diff

Index: sys/dev/mlx4/mlx4_en/en.h
===================================================================
--- sys/dev/mlx4/mlx4_en/en.h
+++ sys/dev/mlx4/mlx4_en/en.h
@@ -845,7 +845,7 @@
void mlx4_en_unmap_buffer(struct mlx4_buf *buf);
void mlx4_en_calc_rx_buf(if_t dev);
-const u32 *mlx4_en_get_rss_key(struct mlx4_en_priv *priv, u16 *keylen);
+void mlx4_en_get_rss_key(void *key);
u8 mlx4_en_get_rss_mask(struct mlx4_en_priv *priv);
int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv);
void mlx4_en_release_rss_steer(struct mlx4_en_priv *priv);
Index: sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
===================================================================
--- sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
+++ sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
@@ -1953,7 +1953,6 @@
int error;
int mask;
struct ifrsskey *ifrk;
- const u32 *key;
struct ifrsshash *ifrh;
u8 rss_mask;
@@ -2092,12 +2091,10 @@
case SIOCGIFRSSKEY:
ifrk = (struct ifrsskey *)data;
ifrk->ifrk_func = RSS_FUNC_TOEPLITZ;
+ ifrk->ifrk_keylen = MLX4_EN_RSS_KEY_SIZE;
+ CTASSERT(sizeof(ifrk->ifrk_key) >= MLX4_EN_RSS_KEY_SIZE);
mutex_lock(&mdev->state_lock);
- key = mlx4_en_get_rss_key(priv, &ifrk->ifrk_keylen);
- if (ifrk->ifrk_keylen > RSS_KEYLEN)
- error = EINVAL;
- else
- memcpy(ifrk->ifrk_key, key, ifrk->ifrk_keylen);
+ mlx4_en_get_rss_key(ifrk->ifrk_key);
mutex_unlock(&mdev->state_lock);
break;
Index: sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
===================================================================
--- sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
+++ sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
@@ -43,6 +43,7 @@
#endif
#include "en.h"
+#include <net/rss_config.h>
#if (MLX4_EN_MAX_RX_SEGS == 1)
static void mlx4_en_init_rx_desc(struct mlx4_en_priv *priv,
@@ -993,26 +994,11 @@
mlx4_qp_release_range(priv->mdev->dev, qpn, 1);
}
-const u32 *
-mlx4_en_get_rss_key(struct mlx4_en_priv *priv __unused,
- u16 *keylen)
+void
+mlx4_en_get_rss_key(void *key)
{
- static const u32 rsskey[10] = {
- cpu_to_be32(0xD181C62C),
- cpu_to_be32(0xF7F4DB5B),
- cpu_to_be32(0x1983A2FC),
- cpu_to_be32(0x943E1ADB),
- cpu_to_be32(0xD9389E6B),
- cpu_to_be32(0xD1039C2C),
- cpu_to_be32(0xA74499AD),
- cpu_to_be32(0x593D56D9),
- cpu_to_be32(0xF3253C06),
- cpu_to_be32(0x2ADC1FFC)
- };
-
- if (keylen != NULL)
- *keylen = sizeof(rsskey);
- return (rsskey);
+ CTASSERT(MLX4_EN_RSS_KEY_SIZE == RSS_KEYSIZE);
+ rss_getkey(key);
}
u8 mlx4_en_get_rss_mask(struct mlx4_en_priv *priv)
@@ -1032,7 +1018,6 @@
struct mlx4_en_rss_map *rss_map = &priv->rss_map;
struct mlx4_qp_context context;
struct mlx4_rss_context *rss_context;
- const u32 *key;
int rss_rings;
void *ptr;
int i;
@@ -1085,9 +1070,7 @@
rss_context->base_qpn_udp = rss_context->default_qpn;
rss_context->flags = mlx4_en_get_rss_mask(priv);
rss_context->hash_fn = MLX4_RSS_HASH_TOP;
- key = mlx4_en_get_rss_key(priv, NULL);
- for (i = 0; i < 10; i++)
- rss_context->rss_key[i] = key[i];
+ mlx4_en_get_rss_key(rss_context->rss_key);
err = mlx4_qp_to_ready(mdev->dev, &priv->res.mtt, &context,
&rss_map->indir_qp, &rss_map->indir_state);

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 19, 11:23 PM (16 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39257887
Default Alt Text
D59798.id187041.diff (3 KB)

Event Timeline