hash: validate hash bucket entries while compiling
[dpdk.git] / lib / librte_hash / rte_cuckoo_hash.c
index 9b1387b..375e7d2 100644 (file)
@@ -107,7 +107,6 @@ rte_hash_create(const struct rte_hash_parameters *params)
        /* Check for valid parameters */
        if ((params->entries > RTE_HASH_ENTRIES_MAX) ||
                        (params->entries < RTE_HASH_BUCKET_ENTRIES) ||
-                       !rte_is_power_of_2(RTE_HASH_BUCKET_ENTRIES) ||
                        (params->key_len == 0)) {
                rte_errno = EINVAL;
                RTE_LOG(ERR, HASH, "rte_hash_create has invalid parameters\n");
@@ -552,7 +551,8 @@ __rte_hash_add_key_with_hash(const struct rte_hash *h, const void *key,
                                 * Return index where key is stored,
                                 * subtracting the first dummy index
                                 */
-                               return prim_bkt->key_idx[i] - 1;
+                               ret = prim_bkt->key_idx[i] - 1;
+                               goto failure;
                        }
                }
        }
@@ -572,7 +572,8 @@ __rte_hash_add_key_with_hash(const struct rte_hash *h, const void *key,
                                 * Return index where key is stored,
                                 * subtracting the first dummy index
                                 */
-                               return sec_bkt->key_idx[i] - 1;
+                               ret = sec_bkt->key_idx[i] - 1;
+                               goto failure;
                        }
                }
        }