diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 1157a440a8..67c8a8c3a6 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -759,9 +759,8 @@ mlx5_devx_cmd_create_tir(struct ibv_context *ctx, { uint32_t in[MLX5_ST_SZ_DW(create_tir_in)] = {0}; uint32_t out[MLX5_ST_SZ_DW(create_tir_out)] = {0}; - void *tir_ctx, *outer, *inner; + void *tir_ctx, *outer, *inner, *rss_key; struct mlx5_devx_obj *tir = NULL; - int i; tir = rte_calloc(__func__, 1, sizeof(*tir), 0); if (!tir) { @@ -784,10 +783,8 @@ mlx5_devx_cmd_create_tir(struct ibv_context *ctx, MLX5_SET(tirc, tir_ctx, rx_hash_fn, tir_attr->rx_hash_fn); MLX5_SET(tirc, tir_ctx, self_lb_block, tir_attr->self_lb_block); MLX5_SET(tirc, tir_ctx, transport_domain, tir_attr->transport_domain); - for (i = 0; i < 10; i++) { - MLX5_SET(tirc, tir_ctx, rx_hash_toeplitz_key[i], - tir_attr->rx_hash_toeplitz_key[i]); - } + rss_key = MLX5_ADDR_OF(tirc, tir_ctx, rx_hash_toeplitz_key); + memcpy(rss_key, tir_attr->rx_hash_toeplitz_key, MLX5_RSS_HASH_KEY_LEN); outer = MLX5_ADDR_OF(tirc, tir_ctx, rx_hash_field_selector_outer); MLX5_SET(rx_hash_field_select, outer, l3_prot_type, tir_attr->rx_hash_field_selector_outer.l3_prot_type); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index 20bb29410f..f7802e6a60 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -183,7 +183,7 @@ struct mlx5_devx_tir_attr { uint32_t rx_hash_fn:4; uint32_t self_lb_block:2; uint32_t transport_domain:24; - uint32_t rx_hash_toeplitz_key[10]; + uint8_t rx_hash_toeplitz_key[MLX5_RSS_HASH_KEY_LEN]; struct mlx5_rx_hash_field_select rx_hash_field_selector_outer; struct mlx5_rx_hash_field_select rx_hash_field_selector_inner; }; diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index 8a6b410eff..97ce206275 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -2519,7 +2519,8 @@ mlx5_hrxq_new(struct rte_eth_dev *dev, tir_attr.transport_domain = priv->sh->td->id; else tir_attr.transport_domain = priv->sh->tdn; - memcpy(tir_attr.rx_hash_toeplitz_key, rss_key, rss_key_len); + memcpy(tir_attr.rx_hash_toeplitz_key, rss_key, + MLX5_RSS_HASH_KEY_LEN); tir_attr.indirect_table = ind_tbl->rqt->id; if (dev->data->dev_conf.lpbk_mode) tir_attr.self_lb_block = diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_steer.c b/drivers/vdpa/mlx5/mlx5_vdpa_steer.c index 36017f1640..9f8af4ce4a 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_steer.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_steer.c @@ -144,10 +144,16 @@ mlx5_vdpa_rss_flows_create(struct mlx5_vdpa_priv *priv) .transport_domain = priv->td->id, .indirect_table = priv->steer.rqt->id, .rx_hash_symmetric = 1, - .rx_hash_toeplitz_key = { 0x2cc681d1, 0x5bdbf4f7, 0xfca28319, - 0xdb1a3e94, 0x6b9e38d9, 0x2c9c03d1, - 0xad9944a7, 0xd9563d59, 0x063c25f3, - 0xfc1fdc2a }, + .rx_hash_toeplitz_key = { 0x2c, 0xc6, 0x81, 0xd1, + 0x5b, 0xdb, 0xf4, 0xf7, + 0xfc, 0xa2, 0x83, 0x19, + 0xdb, 0x1a, 0x3e, 0x94, + 0x6b, 0x9e, 0x38, 0xd9, + 0x2c, 0x9c, 0x03, 0xd1, + 0xad, 0x99, 0x44, 0xa7, + 0xd9, 0x56, 0x3d, 0x59, + 0x06, 0x3c, 0x25, 0xf3, + 0xfc, 0x1f, 0xdc, 0x2a }, }; struct { size_t size;