net/mlx5: use correct RETA table size
[dpdk.git] / drivers / net / mlx5 / mlx5_rss.c
index 639e935..0702f1a 100644 (file)
 /* Verbs header. */
 /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
 #ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-pedantic"
+#pragma GCC diagnostic ignored "-Wpedantic"
 #endif
 #include <infiniband/verbs.h>
 #ifdef PEDANTIC
-#pragma GCC diagnostic error "-pedantic"
+#pragma GCC diagnostic error "-Wpedantic"
 #endif
 
 /* DPDK headers don't like -pedantic. */
 #ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-pedantic"
+#pragma GCC diagnostic ignored "-Wpedantic"
 #endif
 #include <rte_malloc.h>
 #include <rte_ethdev.h>
 #ifdef PEDANTIC
-#pragma GCC diagnostic error "-pedantic"
+#pragma GCC diagnostic error "-Wpedantic"
 #endif
 
 #include "mlx5.h"
@@ -257,13 +257,9 @@ priv_dev_rss_reta_query(struct priv *priv,
 {
        unsigned int idx;
        unsigned int i;
-       int ret;
-
-       /* See RETA comment in mlx5_dev_infos_get(). */
-       ret = priv_rss_reta_index_resize(priv, priv->ind_table_max_size);
-       if (ret)
-               return ret;
 
+       if (!reta_size || reta_size > priv->reta_idx_n)
+               return EINVAL;
        /* Fill each entry of the table even if its bit is not set. */
        for (idx = 0, i = 0; (i != reta_size); ++i) {
                idx = i / RTE_RETA_GROUP_SIZE;
@@ -296,8 +292,9 @@ priv_dev_rss_reta_update(struct priv *priv,
        unsigned int pos;
        int ret;
 
-       /* See RETA comment in mlx5_dev_infos_get(). */
-       ret = priv_rss_reta_index_resize(priv, priv->ind_table_max_size);
+       if (!reta_size)
+               return EINVAL;
+       ret = priv_rss_reta_index_resize(priv, reta_size);
        if (ret)
                return ret;