Lines Matching refs:indr_dev
320 struct flow_indr_block_dev *indr_dev; in flow_indr_block_dev_get() local
322 indr_dev = flow_indr_block_dev_lookup(dev); in flow_indr_block_dev_get()
323 if (indr_dev) in flow_indr_block_dev_get()
326 indr_dev = kzalloc(sizeof(*indr_dev), GFP_KERNEL); in flow_indr_block_dev_get()
327 if (!indr_dev) in flow_indr_block_dev_get()
330 INIT_LIST_HEAD(&indr_dev->cb_list); in flow_indr_block_dev_get()
331 indr_dev->dev = dev; in flow_indr_block_dev_get()
332 if (rhashtable_insert_fast(&indr_setup_block_ht, &indr_dev->ht_node, in flow_indr_block_dev_get()
334 kfree(indr_dev); in flow_indr_block_dev_get()
339 indr_dev->refcnt++; in flow_indr_block_dev_get()
340 return indr_dev; in flow_indr_block_dev_get()
343 static void flow_indr_block_dev_put(struct flow_indr_block_dev *indr_dev) in flow_indr_block_dev_put() argument
345 if (--indr_dev->refcnt) in flow_indr_block_dev_put()
348 rhashtable_remove_fast(&indr_setup_block_ht, &indr_dev->ht_node, in flow_indr_block_dev_put()
350 kfree(indr_dev); in flow_indr_block_dev_put()
354 flow_indr_block_cb_lookup(struct flow_indr_block_dev *indr_dev, in flow_indr_block_cb_lookup() argument
359 list_for_each_entry(indr_block_cb, &indr_dev->cb_list, list) in flow_indr_block_cb_lookup()
367 flow_indr_block_cb_add(struct flow_indr_block_dev *indr_dev, void *cb_priv, in flow_indr_block_cb_add() argument
372 indr_block_cb = flow_indr_block_cb_lookup(indr_dev, cb, cb_ident); in flow_indr_block_cb_add()
383 list_add(&indr_block_cb->list, &indr_dev->cb_list); in flow_indr_block_cb_add()
415 struct flow_indr_block_dev *indr_dev; in __flow_indr_block_cb_register() local
418 indr_dev = flow_indr_block_dev_get(dev); in __flow_indr_block_cb_register()
419 if (!indr_dev) in __flow_indr_block_cb_register()
422 indr_block_cb = flow_indr_block_cb_add(indr_dev, cb_priv, cb, cb_ident); in __flow_indr_block_cb_register()
433 flow_indr_block_dev_put(indr_dev); in __flow_indr_block_cb_register()
457 struct flow_indr_block_dev *indr_dev; in __flow_indr_block_cb_unregister() local
459 indr_dev = flow_indr_block_dev_lookup(dev); in __flow_indr_block_cb_unregister()
460 if (!indr_dev) in __flow_indr_block_cb_unregister()
463 indr_block_cb = flow_indr_block_cb_lookup(indr_dev, cb, cb_ident); in __flow_indr_block_cb_unregister()
471 flow_indr_block_dev_put(indr_dev); in __flow_indr_block_cb_unregister()
490 struct flow_indr_block_dev *indr_dev; in flow_indr_block_call() local
492 indr_dev = flow_indr_block_dev_lookup(dev); in flow_indr_block_call()
493 if (!indr_dev) in flow_indr_block_call()
496 list_for_each_entry(indr_block_cb, &indr_dev->cb_list, list) in flow_indr_block_call()