Lines Matching refs:hash

50 	spin_lock_irqsave(&vif->hash.cache.lock, flags);
54 list_for_each_entry_rcu(entry, &vif->hash.cache.list, link,
55 lockdep_is_held(&vif->hash.cache.lock)) {
65 new->seq = atomic_inc_return(&vif->hash.cache.seq);
66 list_add_rcu(&new->link, &vif->hash.cache.list);
68 if (++vif->hash.cache.count > xenvif_hash_cache_size) {
70 vif->hash.cache.count--;
75 spin_unlock_irqrestore(&vif->hash.cache.lock, flags);
86 val = xen_netif_toeplitz_hash(vif->hash.key,
87 sizeof(vif->hash.key),
104 spin_lock_irqsave(&vif->hash.cache.lock, flags);
106 list_for_each_entry_rcu(entry, &vif->hash.cache.list, link,
107 lockdep_is_held(&vif->hash.cache.lock)) {
109 vif->hash.cache.count--;
113 spin_unlock_irqrestore(&vif->hash.cache.lock, flags);
133 list_for_each_entry_rcu(entry, &vif->hash.cache.list, link) {
137 entry->seq = atomic_inc_return(&vif->hash.cache.seq);
154 u32 hash = 0;
156 u32 flags = vif->hash.flags;
160 * correspond to any enabled hash type then there's no point
200 hash = xenvif_find_hash(vif, data, sizeof(data));
208 hash = xenvif_find_hash(vif, data, sizeof(data));
224 hash = xenvif_find_hash(vif, data, sizeof(data));
232 hash = xenvif_find_hash(vif, data, sizeof(data));
243 __skb_set_sw_hash(skb, hash, type == PKT_HASH_TYPE_L4);
257 vif->hash.alg = alg;
264 if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
283 if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
286 vif->hash.flags = flags;
293 u8 *key = vif->hash.key;
328 vif->hash.size = size;
329 memset(vif->hash.mapping[vif->hash.mapping_sel], 0,
338 u32 *mapping = vif->hash.mapping[!vif->hash.mapping_sel];
348 if ((off + len < off) || (off + len > vif->hash.size) ||
364 memcpy(mapping, vif->hash.mapping[vif->hash.mapping_sel],
365 vif->hash.size * sizeof(*mapping));
379 vif->hash.mapping_sel = !vif->hash.mapping_sel;
389 switch (vif->hash.alg) {
401 if (vif->hash.flags) {
404 if (vif->hash.flags & XEN_NETIF_CTRL_HASH_TYPE_IPV4)
406 if (vif->hash.flags & XEN_NETIF_CTRL_HASH_TYPE_IPV4_TCP)
408 if (vif->hash.flags & XEN_NETIF_CTRL_HASH_TYPE_IPV6)
410 if (vif->hash.flags & XEN_NETIF_CTRL_HASH_TYPE_IPV6_TCP)
426 seq_printf(m, "%02x ", vif->hash.key[i]);
431 if (vif->hash.size != 0) {
432 const u32 *mapping = vif->hash.mapping[vif->hash.mapping_sel];
436 for (i = 0; i < vif->hash.size; ) {
440 if (i + n >= vif->hash.size)
441 n = vif->hash.size - i;
459 BUG_ON(vif->hash.cache.count);
461 spin_lock_init(&vif->hash.cache.lock);
462 INIT_LIST_HEAD(&vif->hash.cache.list);