rhashtable: Move mutex_is_held under PROVE_LOCKING
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 13 Nov 2014 10:11:20 +0000 (18:11 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Nov 2014 20:13:05 +0000 (15:13 -0500)
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: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/rhashtable.h
lib/rhashtable.c

index fb298e9d6d3a8e75c280162f21e04c5112eebeac..96ce8ceff554956fe30421b76cd3d3a7113460a0 100644 (file)
@@ -65,7 +65,9 @@ struct rhashtable_params {
                                                 size_t new_size);
        bool                    (*shrink_decision)(const struct rhashtable *ht,
                                                   size_t new_size);
+#ifdef CONFIG_PROVE_LOCKING
        int                     (*mutex_is_held)(void);
+#endif
 };
 
 /**
index 081be3ba9ea8285b05374e6bb98299af541f567c..c7654b6f5f64e9ba6eb7c49770b456067f0ccd3f 100644 (file)
@@ -532,7 +532,9 @@ static size_t rounded_hashtable_size(struct rhashtable_params *params)
  *     .key_offset = offsetof(struct test_obj, key),
  *     .key_len = sizeof(int),
  *     .hashfn = arch_fast_hash,
+ * #ifdef CONFIG_PROVE_LOCKING
  *     .mutex_is_held = &my_mutex_is_held,
+ * #endif
  * };
  *
  * Configuration Example 2: Variable length keys
@@ -552,7 +554,9 @@ static size_t rounded_hashtable_size(struct rhashtable_params *params)
  *     .head_offset = offsetof(struct test_obj, node),
  *     .hashfn = arch_fast_hash,
  *     .obj_hashfn = my_hash_fn,
+ * #ifdef CONFIG_PROVE_LOCKING
  *     .mutex_is_held = &my_mutex_is_held,
+ * #endif
  * };
  */
 int rhashtable_init(struct rhashtable *ht, struct rhashtable_params *params)
@@ -613,10 +617,12 @@ EXPORT_SYMBOL_GPL(rhashtable_destroy);
 #define TEST_PTR       ((void *) 0xdeadbeef)
 #define TEST_NEXPANDS  4
 
+#ifdef CONFIG_PROVE_LOCKING
 static int test_mutex_is_held(void)
 {
        return 1;
 }
+#endif
 
 struct test_obj {
        void                    *ptr;
@@ -767,7 +773,9 @@ static int __init test_rht_init(void)
                .key_offset = offsetof(struct test_obj, value),
                .key_len = sizeof(int),
                .hashfn = arch_fast_hash,
+#ifdef CONFIG_PROVE_LOCKING
                .mutex_is_held = &test_mutex_is_held,
+#endif
                .grow_decision = rht_grow_above_75,
                .shrink_decision = rht_shrink_below_30,
        };