Lines Matching refs:hash
22 static void batadv_hash_init(struct batadv_hashtable *hash) in batadv_hash_init() argument
26 for (i = 0; i < hash->size; i++) { in batadv_hash_init()
27 INIT_HLIST_HEAD(&hash->table[i]); in batadv_hash_init()
28 spin_lock_init(&hash->list_locks[i]); in batadv_hash_init()
33 void batadv_hash_destroy(struct batadv_hashtable *hash) in batadv_hash_destroy() argument
35 kfree(hash->list_locks); in batadv_hash_destroy()
36 kfree(hash->table); in batadv_hash_destroy()
37 kfree(hash); in batadv_hash_destroy()
43 struct batadv_hashtable *hash; in batadv_hash_new() local
45 hash = kmalloc(sizeof(*hash), GFP_ATOMIC); in batadv_hash_new()
46 if (!hash) in batadv_hash_new()
49 hash->table = kmalloc_array(size, sizeof(*hash->table), GFP_ATOMIC); in batadv_hash_new()
50 if (!hash->table) in batadv_hash_new()
53 hash->list_locks = kmalloc_array(size, sizeof(*hash->list_locks), in batadv_hash_new()
55 if (!hash->list_locks) in batadv_hash_new()
58 hash->size = size; in batadv_hash_new()
59 batadv_hash_init(hash); in batadv_hash_new()
60 return hash; in batadv_hash_new()
63 kfree(hash->table); in batadv_hash_new()
65 kfree(hash); in batadv_hash_new()
69 void batadv_hash_set_lock_class(struct batadv_hashtable *hash, in batadv_hash_set_lock_class() argument
74 for (i = 0; i < hash->size; i++) in batadv_hash_set_lock_class()
75 lockdep_set_class(&hash->list_locks[i], key); in batadv_hash_set_lock_class()