Lines Matching refs:e

280 	struct tun_flow_entry *e;  in tun_flow_find()  local
282 hlist_for_each_entry_rcu(e, head, hash_link) { in tun_flow_find()
283 if (e->rxhash == rxhash) in tun_flow_find()
284 return e; in tun_flow_find()
293 struct tun_flow_entry *e = kmalloc(sizeof(*e), GFP_ATOMIC); in tun_flow_create() local
295 if (e) { in tun_flow_create()
298 e->updated = jiffies; in tun_flow_create()
299 e->rxhash = rxhash; in tun_flow_create()
300 e->rps_rxhash = 0; in tun_flow_create()
301 e->queue_index = queue_index; in tun_flow_create()
302 e->tun = tun; in tun_flow_create()
303 hlist_add_head_rcu(&e->hash_link, head); in tun_flow_create()
306 return e; in tun_flow_create()
309 static void tun_flow_delete(struct tun_struct *tun, struct tun_flow_entry *e) in tun_flow_delete() argument
312 e->rxhash, e->queue_index); in tun_flow_delete()
313 hlist_del_rcu(&e->hash_link); in tun_flow_delete()
314 kfree_rcu(e, rcu); in tun_flow_delete()
324 struct tun_flow_entry *e; in tun_flow_flush() local
327 hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) in tun_flow_flush()
328 tun_flow_delete(tun, e); in tun_flow_flush()
339 struct tun_flow_entry *e; in tun_flow_delete_by_queue() local
342 hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) { in tun_flow_delete_by_queue()
343 if (e->queue_index == queue_index) in tun_flow_delete_by_queue()
344 tun_flow_delete(tun, e); in tun_flow_delete_by_queue()
362 struct tun_flow_entry *e; in tun_flow_cleanup() local
365 hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) { in tun_flow_cleanup()
368 this_timer = e->updated + delay; in tun_flow_cleanup()
370 tun_flow_delete(tun, e); in tun_flow_cleanup()
385 struct tun_flow_entry *e; in tun_flow_update() local
401 e = tun_flow_find(head, rxhash); in tun_flow_update()
402 if (likely(e)) { in tun_flow_update()
404 e->queue_index = queue_index; in tun_flow_update()
405 e->updated = jiffies; in tun_flow_update()
406 sock_rps_record_flow_hash(e->rps_rxhash); in tun_flow_update()
427 static inline void tun_flow_save_rps_rxhash(struct tun_flow_entry *e, u32 hash) in tun_flow_save_rps_rxhash() argument
429 if (unlikely(e->rps_rxhash != hash)) in tun_flow_save_rps_rxhash()
430 e->rps_rxhash = hash; in tun_flow_save_rps_rxhash()
444 struct tun_flow_entry *e; in tun_select_queue() local
453 e = tun_flow_find(&tun->flows[tun_hashfn(txq)], txq); in tun_select_queue()
454 if (e) { in tun_select_queue()
455 tun_flow_save_rps_rxhash(e, txq); in tun_select_queue()
456 txq = e->queue_index; in tun_select_queue()
833 struct tun_flow_entry *e; in tun_net_xmit() local
834 e = tun_flow_find(&tun->flows[tun_hashfn(rxhash)], in tun_net_xmit()
836 if (e) in tun_net_xmit()
837 tun_flow_save_rps_rxhash(e, rxhash); in tun_net_xmit()