Commit 1b2f309d authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

rhashtable: Move mutex_is_held under PROVE_LOCKING

The rhashtable function mutex_is_held is only used when PROVE_LOCKING
is enabled.  This patch makes the mutex_is_held field in rhashtable
optional depending on PROVE_LOCKING.
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1f501d62
...@@ -65,7 +65,9 @@ struct rhashtable_params { ...@@ -65,7 +65,9 @@ struct rhashtable_params {
size_t new_size); size_t new_size);
bool (*shrink_decision)(const struct rhashtable *ht, bool (*shrink_decision)(const struct rhashtable *ht,
size_t new_size); size_t new_size);
#ifdef CONFIG_PROVE_LOCKING
int (*mutex_is_held)(void); int (*mutex_is_held)(void);
#endif
}; };
/** /**
......
...@@ -532,7 +532,9 @@ static size_t rounded_hashtable_size(struct rhashtable_params *params) ...@@ -532,7 +532,9 @@ static size_t rounded_hashtable_size(struct rhashtable_params *params)
* .key_offset = offsetof(struct test_obj, key), * .key_offset = offsetof(struct test_obj, key),
* .key_len = sizeof(int), * .key_len = sizeof(int),
* .hashfn = arch_fast_hash, * .hashfn = arch_fast_hash,
* #ifdef CONFIG_PROVE_LOCKING
* .mutex_is_held = &my_mutex_is_held, * .mutex_is_held = &my_mutex_is_held,
* #endif
* }; * };
* *
* Configuration Example 2: Variable length keys * Configuration Example 2: Variable length keys
...@@ -552,7 +554,9 @@ static size_t rounded_hashtable_size(struct rhashtable_params *params) ...@@ -552,7 +554,9 @@ static size_t rounded_hashtable_size(struct rhashtable_params *params)
* .head_offset = offsetof(struct test_obj, node), * .head_offset = offsetof(struct test_obj, node),
* .hashfn = arch_fast_hash, * .hashfn = arch_fast_hash,
* .obj_hashfn = my_hash_fn, * .obj_hashfn = my_hash_fn,
* #ifdef CONFIG_PROVE_LOCKING
* .mutex_is_held = &my_mutex_is_held, * .mutex_is_held = &my_mutex_is_held,
* #endif
* }; * };
*/ */
int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params) int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params)
...@@ -613,10 +617,12 @@ EXPORT_SYMBOL_GPL(rhashtable_destroy); ...@@ -613,10 +617,12 @@ EXPORT_SYMBOL_GPL(rhashtable_destroy);
#define TEST_PTR ((void *) 0xdeadbeef) #define TEST_PTR ((void *) 0xdeadbeef)
#define TEST_NEXPANDS 4 #define TEST_NEXPANDS 4
#ifdef CONFIG_PROVE_LOCKING
static int test_mutex_is_held(void) static int test_mutex_is_held(void)
{ {
return 1; return 1;
} }
#endif
struct test_obj { struct test_obj {
void *ptr; void *ptr;
...@@ -767,7 +773,9 @@ static int __init test_rht_init(void) ...@@ -767,7 +773,9 @@ static int __init test_rht_init(void)
.key_offset = offsetof(struct test_obj, value), .key_offset = offsetof(struct test_obj, value),
.key_len = sizeof(int), .key_len = sizeof(int),
.hashfn = arch_fast_hash, .hashfn = arch_fast_hash,
#ifdef CONFIG_PROVE_LOCKING
.mutex_is_held = &test_mutex_is_held, .mutex_is_held = &test_mutex_is_held,
#endif
.grow_decision = rht_grow_above_75, .grow_decision = rht_grow_above_75,
.shrink_decision = rht_shrink_below_30, .shrink_decision = rht_shrink_below_30,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment