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()
996 bool rtnl_held) in tcf_get_next_proto() argument
1001 tcf_proto_put(tp, rtnl_held, NULL); in tcf_get_next_proto()
1007 static void tcf_block_flush_all_chains(struct tcf_block *block, bool rtnl_held) in tcf_block_flush_all_chains() argument
1018 tcf_chain_flush(chain, rtnl_held); in tcf_block_flush_all_chains()
1027 u32 *parent, int ifindex, bool rtnl_held, in __tcf_qdisc_find() argument
1092 if (rtnl_held) in __tcf_qdisc_find()
1159 struct tcf_block_ext_info *ei, bool rtnl_held) in __tcf_block_put() argument
1180 tcf_block_flush_all_chains(block, rtnl_held); in __tcf_block_put()
1186 static void tcf_block_refcnt_put(struct tcf_block *block, bool rtnl_held) in tcf_block_refcnt_put() argument
1188 __tcf_block_put(block, NULL, NULL, rtnl_held); in tcf_block_refcnt_put()
1230 bool rtnl_held) in tcf_block_release() argument
1233 tcf_block_refcnt_put(block, rtnl_held); in tcf_block_release()
1236 if (rtnl_held) in tcf_block_release()
1693 bool rtnl_held) in tcf_chain_tp_insert_unique() argument
1703 tcf_proto_destroy(tp_new, rtnl_held, false, NULL); in tcf_chain_tp_insert_unique()
1714 tcf_proto_destroy(tp_new, rtnl_held, false, NULL); in tcf_chain_tp_insert_unique()
1717 tcf_proto_destroy(tp_new, rtnl_held, false, NULL); in tcf_chain_tp_insert_unique()
1725 struct tcf_proto *tp, bool rtnl_held, in tcf_chain_tp_delete_empty() argument
1762 tcf_proto_put(tp, rtnl_held, extack); in tcf_chain_tp_delete_empty()
1802 bool terse_dump, bool rtnl_held) in tcf_fill_node() argument
1832 rtnl_held) < 0) in tcf_fill_node()
1839 tp->ops->dump(net, tp, fh, skb, tcm, rtnl_held) < 0) in tcf_fill_node()
1856 bool rtnl_held) in tfilter_notify() argument
1868 false, rtnl_held) <= 0) { in tfilter_notify()
1888 bool rtnl_held, struct netlink_ext_ack *extack) in tfilter_del_notify() argument
1900 false, rtnl_held) <= 0) { in tfilter_del_notify()
1906 err = tp->ops->delete(tp, fh, last, rtnl_held, extack); in tfilter_del_notify()
1929 bool rtnl_held) in tfilter_notify_chain() argument
1933 for (tp = tcf_get_next_proto(chain, NULL, rtnl_held); in tfilter_notify_chain()
1934 tp; tp = tcf_get_next_proto(chain, tp, rtnl_held)) in tfilter_notify_chain()
1936 q, parent, NULL, event, false, rtnl_held); in tfilter_notify_chain()
1966 bool rtnl_held = false; in tc_new_tfilter() local
2019 if (rtnl_held || in tc_new_tfilter()
2022 rtnl_held = true; in tc_new_tfilter()
2088 rtnl_held, extack); in tc_new_tfilter()
2096 rtnl_held); in tc_new_tfilter()
2135 rtnl_held, extack); in tc_new_tfilter()
2138 RTM_NEWTFILTER, false, rtnl_held); in tc_new_tfilter()
2147 tcf_chain_tp_delete_empty(chain, tp, rtnl_held, NULL); in tc_new_tfilter()
2151 tcf_proto_put(tp, rtnl_held, NULL); in tc_new_tfilter()
2155 tcf_block_release(q, block, rtnl_held); in tc_new_tfilter()
2157 if (rtnl_held) in tc_new_tfilter()
2164 rtnl_held = true; in tc_new_tfilter()
2194 bool rtnl_held = false; in tc_del_tfilter() local
2232 rtnl_held = true; in tc_del_tfilter()
2269 chain, RTM_DELTFILTER, rtnl_held); in tc_del_tfilter()
2270 tcf_chain_flush(chain, rtnl_held); in tc_del_tfilter()
2291 tcf_proto_put(tp, rtnl_held, NULL); in tc_del_tfilter()
2293 RTM_DELTFILTER, false, rtnl_held); in tc_del_tfilter()
2309 rtnl_held, extack); in tc_del_tfilter()
2314 tcf_chain_tp_delete_empty(chain, tp, rtnl_held, extack); in tc_del_tfilter()
2320 tcf_proto_put(tp, rtnl_held, NULL); in tc_del_tfilter()
2323 tcf_block_release(q, block, rtnl_held); in tc_del_tfilter()
2325 if (rtnl_held) in tc_del_tfilter()
2354 bool rtnl_held = false; in tc_get_tfilter() local
2388 rtnl_held = true; in tc_get_tfilter()
2437 fh, RTM_NEWTFILTER, true, rtnl_held); in tc_get_tfilter()
2446 tcf_proto_put(tp, rtnl_held, NULL); in tc_get_tfilter()
2449 tcf_block_release(q, block, rtnl_held); in tc_get_tfilter()
2451 if (rtnl_held) in tc_get_tfilter()
3055 bool rtnl_held, struct netlink_ext_ack *extack) in tcf_exts_validate() argument
3066 a_o = tc_action_load_ops("police", tb[exts->police], rtnl_held, extack); in tcf_exts_validate()
3072 rtnl_held, extack); in tcf_exts_validate()
3087 &attr_size, rtnl_held, extack); in tcf_exts_validate()
3272 void *type_data, bool err_stop, bool rtnl_held) in tc_setup_cb_call() argument
3274 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_call()
3285 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_call()
3308 u32 *flags, unsigned int *in_hw_count, bool rtnl_held) in tc_setup_cb_add() argument
3310 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_add()
3321 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_add()
3360 bool rtnl_held) in tc_setup_cb_replace() argument
3362 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_replace()
3373 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_replace()
3412 u32 *flags, unsigned int *in_hw_count, bool rtnl_held) in tc_setup_cb_destroy() argument
3414 bool take_rtnl = READ_ONCE(block->lockeddevcnt) && !rtnl_held; in tc_setup_cb_destroy()
3425 if (!rtnl_held && !take_rtnl && block->lockeddevcnt) { in tc_setup_cb_destroy()