Lines Matching refs:e

226 	struct tun_flow_entry *e;  in tun_flow_find()  local
228 hlist_for_each_entry_rcu(e, head, hash_link) { in tun_flow_find()
229 if (e->rxhash == rxhash) in tun_flow_find()
230 return e; in tun_flow_find()
239 struct tun_flow_entry *e = kmalloc(sizeof(*e), GFP_ATOMIC); in tun_flow_create() local
241 if (e) { in tun_flow_create()
244 e->updated = jiffies; in tun_flow_create()
245 e->rxhash = rxhash; in tun_flow_create()
246 e->rps_rxhash = 0; in tun_flow_create()
247 e->queue_index = queue_index; in tun_flow_create()
248 e->tun = tun; in tun_flow_create()
249 hlist_add_head_rcu(&e->hash_link, head); in tun_flow_create()
252 return e; in tun_flow_create()
255 static void tun_flow_delete(struct tun_struct *tun, struct tun_flow_entry *e) in tun_flow_delete() argument
258 e->rxhash, e->queue_index); in tun_flow_delete()
259 hlist_del_rcu(&e->hash_link); in tun_flow_delete()
260 kfree_rcu(e, rcu); in tun_flow_delete()
270 struct tun_flow_entry *e; in tun_flow_flush() local
273 hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) in tun_flow_flush()
274 tun_flow_delete(tun, e); in tun_flow_flush()
285 struct tun_flow_entry *e; in tun_flow_delete_by_queue() local
288 hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) { in tun_flow_delete_by_queue()
289 if (e->queue_index == queue_index) in tun_flow_delete_by_queue()
290 tun_flow_delete(tun, e); in tun_flow_delete_by_queue()
308 struct tun_flow_entry *e; in tun_flow_cleanup() local
311 hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) { in tun_flow_cleanup()
314 this_timer = e->updated + delay; in tun_flow_cleanup()
316 tun_flow_delete(tun, e); in tun_flow_cleanup()
331 struct tun_flow_entry *e; in tun_flow_update() local
347 e = tun_flow_find(head, rxhash); in tun_flow_update()
348 if (likely(e)) { in tun_flow_update()
350 e->queue_index = queue_index; in tun_flow_update()
351 e->updated = jiffies; in tun_flow_update()
352 sock_rps_record_flow_hash(e->rps_rxhash); in tun_flow_update()
373 static inline void tun_flow_save_rps_rxhash(struct tun_flow_entry *e, u32 hash) in tun_flow_save_rps_rxhash() argument
375 if (unlikely(e->rps_rxhash != hash)) in tun_flow_save_rps_rxhash()
376 e->rps_rxhash = hash; in tun_flow_save_rps_rxhash()
390 struct tun_flow_entry *e; in tun_select_queue() local
399 e = tun_flow_find(&tun->flows[tun_hashfn(txq)], txq); in tun_select_queue()
400 if (e) { in tun_select_queue()
401 tun_flow_save_rps_rxhash(e, txq); in tun_select_queue()
402 txq = e->queue_index; in tun_select_queue()
778 struct tun_flow_entry *e; in tun_net_xmit() local
779 e = tun_flow_find(&tun->flows[tun_hashfn(rxhash)], in tun_net_xmit()
781 if (e) in tun_net_xmit()
782 tun_flow_save_rps_rxhash(e, rxhash); in tun_net_xmit()