Lines Matching refs:rtnl_held
129 tcf_proto_lookup_ops(const char *kind, bool rtnl_held, in tcf_proto_lookup_ops() argument
138 if (rtnl_held) in tcf_proto_lookup_ops()
141 if (rtnl_held) in tcf_proto_lookup_ops()
253 bool rtnl_held, in tcf_proto_create() argument
263 tp->ops = tcf_proto_lookup_ops(kind, rtnl_held, extack); in tcf_proto_create()
294 static void tcf_proto_destroy(struct tcf_proto *tp, bool rtnl_held, in tcf_proto_destroy() argument
297 tp->ops->destroy(tp, rtnl_held, extack); in tcf_proto_destroy()
305 static void tcf_proto_put(struct tcf_proto *tp, bool rtnl_held, in tcf_proto_put() argument
309 tcf_proto_destroy(tp, rtnl_held, true, extack); in tcf_proto_put()
596 static void tcf_chain_flush(struct tcf_chain *chain, bool rtnl_held) in tcf_chain_flush() argument
615 tcf_proto_put(tp, rtnl_held, NULL); in tcf_chain_flush()
995 bool rtnl_held) in tcf_get_next_proto() argument
1000 tcf_proto_put(tp, rtnl_held, NULL); in tcf_get_next_proto()
1006 static void tcf_block_flush_all_chains(struct tcf_block *block, bool rtnl_held) in tcf_block_flush_all_chains() argument
1017 tcf_chain_flush(chain, rtnl_held); in tcf_block_flush_all_chains()
1026 u32 *parent, int ifindex, bool rtnl_held, in __tcf_qdisc_find() argument
1091 if (rtnl_held) in __tcf_qdisc_find()
1158 struct tcf_block_ext_info *ei, bool rtnl_held) in __tcf_block_put() argument
1179 tcf_block_flush_all_chains(block, rtnl_held); in __tcf_block_put()
1185 static void tcf_block_refcnt_put(struct tcf_block *block, bool rtnl_held) in tcf_block_refcnt_put() argument
1187 __tcf_block_put(block, NULL, NULL, rtnl_held); in tcf_block_refcnt_put()
1229 bool rtnl_held) in tcf_block_release() argument
1232 tcf_block_refcnt_put(block, rtnl_held); in tcf_block_release()
1235 if (rtnl_held) in tcf_block_release()
1692 bool rtnl_held) in tcf_chain_tp_insert_unique() argument
1702 tcf_proto_destroy(tp_new, rtnl_held, false, NULL); in tcf_chain_tp_insert_unique()
1713 tcf_proto_destroy(tp_new, rtnl_held, false, NULL); in tcf_chain_tp_insert_unique()
1716 tcf_proto_destroy(tp_new, rtnl_held, false, NULL); in tcf_chain_tp_insert_unique()
1724 struct tcf_proto *tp, bool rtnl_held, in tcf_chain_tp_delete_empty() argument
1761 tcf_proto_put(tp, rtnl_held, extack); in tcf_chain_tp_delete_empty()
1801 bool terse_dump, bool rtnl_held) in tcf_fill_node() argument
1831 rtnl_held) < 0) in tcf_fill_node()
1838 tp->ops->dump(net, tp, fh, skb, tcm, rtnl_held) < 0) in tcf_fill_node()
1855 bool rtnl_held) in tfilter_notify() argument
1867 false, rtnl_held) <= 0) { in tfilter_notify()
1887 bool rtnl_held, struct netlink_ext_ack *extack) in tfilter_del_notify() argument
1899 false, rtnl_held) <= 0) { in tfilter_del_notify()
1905 err = tp->ops->delete(tp, fh, last, rtnl_held, extack); in tfilter_del_notify()
1928 bool rtnl_held) in tfilter_notify_chain() argument
1932 for (tp = tcf_get_next_proto(chain, NULL, rtnl_held); in tfilter_notify_chain()
1933 tp; tp = tcf_get_next_proto(chain, tp, rtnl_held)) in tfilter_notify_chain()
1935 q, parent, NULL, event, false, rtnl_held); in tfilter_notify_chain()
1965 bool rtnl_held = false; in tc_new_tfilter() local
2016 if (rtnl_held || in tc_new_tfilter()
2019 rtnl_held = true; in tc_new_tfilter()
2085 rtnl_held, extack); in tc_new_tfilter()
2093 rtnl_held); in tc_new_tfilter()
2131 rtnl_held, extack); in tc_new_tfilter()
2134 RTM_NEWTFILTER, false, rtnl_held); in tc_new_tfilter()
2143 tcf_chain_tp_delete_empty(chain, tp, rtnl_held, NULL); in tc_new_tfilter()
2147 tcf_proto_put(tp, rtnl_held, NULL); in tc_new_tfilter()
2151 tcf_block_release(q, block, rtnl_held); in tc_new_tfilter()
2153 if (rtnl_held) in tc_new_tfilter()
2160 rtnl_held = true; in tc_new_tfilter()
2190 bool rtnl_held = false; in tc_del_tfilter() local
2228 rtnl_held = true; in tc_del_tfilter()
2265 chain, RTM_DELTFILTER, rtnl_held); in tc_del_tfilter()
2266 tcf_chain_flush(chain, rtnl_held); in tc_del_tfilter()
2287 tcf_proto_put(tp, rtnl_held, NULL); in tc_del_tfilter()
2289 RTM_DELTFILTER, false, rtnl_held); in tc_del_tfilter()
2305 rtnl_held, extack); in tc_del_tfilter()
2310 tcf_chain_tp_delete_empty(chain, tp, rtnl_held, extack); in tc_del_tfilter()
2316 tcf_proto_put(tp, rtnl_held, NULL); in tc_del_tfilter()
2319 tcf_block_release(q, block, rtnl_held); in tc_del_tfilter()
2321 if (rtnl_held) in tc_del_tfilter()
2350 bool rtnl_held = false; in tc_get_tfilter() local
2384 rtnl_held = true; in tc_get_tfilter()
2433 fh, RTM_NEWTFILTER, true, rtnl_held); in tc_get_tfilter()
2442 tcf_proto_put(tp, rtnl_held, NULL); in tc_get_tfilter()
2445 tcf_block_release(q, block, rtnl_held); in tc_get_tfilter()
2447 if (rtnl_held) in tc_get_tfilter()
3050 bool rtnl_held, struct netlink_ext_ack *extack) in tcf_exts_validate() argument
3060 TCA_ACT_BIND, rtnl_held, in tcf_exts_validate()
3074 rtnl_held, extack); in tcf_exts_validate()
3259 void *type_data, bool err_stop, bool rtnl_held) in tc_setup_cb_call() argument
3261 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_call()
3272 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_call()
3295 u32 *flags, unsigned int *in_hw_count, bool rtnl_held) in tc_setup_cb_add() argument
3297 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_add()
3308 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_add()
3347 bool rtnl_held) in tc_setup_cb_replace() argument
3349 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_replace()
3360 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_replace()
3399 u32 *flags, unsigned int *in_hw_count, bool rtnl_held) in tc_setup_cb_destroy() argument
3401 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_destroy()
3412 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_destroy()