net/mlx5: fix constant array size
Before this commit the PMD used:
const int elt_n = 8
const int *stack[elt_n];
In Windows clang compiler complains:
net/mlx5/mlx5_flow.c:215:19: error: variable length array folded
to constant array as an extension [-Werror,-Wgnu-folding-constant]
Fix it by using a constant macro definition instead of a variable:
#define MLX5_RSS_EXP_ELT_N 8
const int *stack[MLX5_RSS_EXP_ELT_N];
Fixes: c7870bfe09
("ethdev: move RSS expansion code to mlx5 driver")
Cc: stable@dpdk.org
Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
This commit is contained in:
parent
187f942b2d
commit
09a5e9777e
@ -212,6 +212,8 @@ mlx5_flow_expand_rss_item_complete(const struct rte_flow_item *item)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define MLX5_RSS_EXP_ELT_N 8
|
||||
|
||||
/**
|
||||
* Expand RSS flows into several possible flows according to the RSS hash
|
||||
* fields requested and the driver capabilities.
|
||||
@ -242,13 +244,12 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size,
|
||||
const struct mlx5_flow_expand_node graph[],
|
||||
int graph_root_index)
|
||||
{
|
||||
const int elt_n = 8;
|
||||
const struct rte_flow_item *item;
|
||||
const struct mlx5_flow_expand_node *node = &graph[graph_root_index];
|
||||
const int *next_node;
|
||||
const int *stack[elt_n];
|
||||
const int *stack[MLX5_RSS_EXP_ELT_N];
|
||||
int stack_pos = 0;
|
||||
struct rte_flow_item flow_items[elt_n];
|
||||
struct rte_flow_item flow_items[MLX5_RSS_EXP_ELT_N];
|
||||
unsigned int i;
|
||||
size_t lsize;
|
||||
size_t user_pattern_size = 0;
|
||||
@ -261,10 +262,10 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size,
|
||||
|
||||
memset(&missed_item, 0, sizeof(missed_item));
|
||||
lsize = offsetof(struct mlx5_flow_expand_rss, entry) +
|
||||
elt_n * sizeof(buf->entry[0]);
|
||||
MLX5_RSS_EXP_ELT_N * sizeof(buf->entry[0]);
|
||||
if (lsize <= size) {
|
||||
buf->entry[0].priority = 0;
|
||||
buf->entry[0].pattern = (void *)&buf->entry[elt_n];
|
||||
buf->entry[0].pattern = (void *)&buf->entry[MLX5_RSS_EXP_ELT_N];
|
||||
buf->entries = 0;
|
||||
addr = buf->entry[0].pattern;
|
||||
}
|
||||
@ -367,7 +368,7 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size,
|
||||
/* Go deeper. */
|
||||
if (node->next) {
|
||||
next_node = node->next;
|
||||
if (stack_pos++ == elt_n) {
|
||||
if (stack_pos++ == MLX5_RSS_EXP_ELT_N) {
|
||||
rte_errno = E2BIG;
|
||||
return -rte_errno;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user