diff options
-rw-r--r-- | lib/rhashtable.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/rhashtable.c b/lib/rhashtable.c index 5f8fe3e88219..e75c48d9d82f 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c | |||
@@ -933,8 +933,6 @@ int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params) | |||
933 | if (params->nulls_base && params->nulls_base < (1U << RHT_BASE_SHIFT)) | 933 | if (params->nulls_base && params->nulls_base < (1U << RHT_BASE_SHIFT)) |
934 | return -EINVAL; | 934 | return -EINVAL; |
935 | 935 | ||
936 | params->min_size = max(params->min_size, HASH_MIN_SIZE); | ||
937 | |||
938 | if (params->nelem_hint) | 936 | if (params->nelem_hint) |
939 | size = rounded_hashtable_size(params); | 937 | size = rounded_hashtable_size(params); |
940 | 938 | ||
@@ -942,6 +940,14 @@ int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params) | |||
942 | mutex_init(&ht->mutex); | 940 | mutex_init(&ht->mutex); |
943 | memcpy(&ht->p, params, sizeof(*params)); | 941 | memcpy(&ht->p, params, sizeof(*params)); |
944 | 942 | ||
943 | if (params->min_size) | ||
944 | ht->p.min_size = roundup_pow_of_two(params->min_size); | ||
945 | |||
946 | if (params->max_size) | ||
947 | ht->p.max_size = rounddown_pow_of_two(params->max_size); | ||
948 | |||
949 | ht->p.min_size = max(params->min_size, HASH_MIN_SIZE); | ||
950 | |||
945 | if (params->locks_mul) | 951 | if (params->locks_mul) |
946 | ht->p.locks_mul = roundup_pow_of_two(params->locks_mul); | 952 | ht->p.locks_mul = roundup_pow_of_two(params->locks_mul); |
947 | else | 953 | else |