| /kernel/linux/linux-6.6/drivers/net/ethernet/huawei/hinic/ |
| D | hinic_hw_api_cmd.c | 49 #define MASKED_IDX(chain, idx) ((idx) & ((chain)->num_cells - 1)) argument 89 static void set_prod_idx(struct hinic_api_cmd_chain *chain) in set_prod_idx() argument 91 enum hinic_api_cmd_chain_type chain_type = chain->chain_type; in set_prod_idx() 92 struct hinic_hwif *hwif = chain->hwif; in set_prod_idx() 100 prod_idx |= HINIC_API_CMD_PI_SET(chain->prod_idx, IDX); in set_prod_idx() 105 static u32 get_hw_cons_idx(struct hinic_api_cmd_chain *chain) in get_hw_cons_idx() argument 109 addr = HINIC_CSR_API_CMD_STATUS_ADDR(chain->chain_type); in get_hw_cons_idx() 110 val = hinic_hwif_read_reg(chain->hwif, addr); in get_hw_cons_idx() 115 static void dump_api_chain_reg(struct hinic_api_cmd_chain *chain) in dump_api_chain_reg() argument 119 addr = HINIC_CSR_API_CMD_STATUS_ADDR(chain->chain_type); in dump_api_chain_reg() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/huawei/hinic/ |
| D | hinic_hw_api_cmd.c | 49 #define MASKED_IDX(chain, idx) ((idx) & ((chain)->num_cells - 1)) argument 89 static void set_prod_idx(struct hinic_api_cmd_chain *chain) in set_prod_idx() argument 91 enum hinic_api_cmd_chain_type chain_type = chain->chain_type; in set_prod_idx() 92 struct hinic_hwif *hwif = chain->hwif; in set_prod_idx() 100 prod_idx |= HINIC_API_CMD_PI_SET(chain->prod_idx, IDX); in set_prod_idx() 105 static u32 get_hw_cons_idx(struct hinic_api_cmd_chain *chain) in get_hw_cons_idx() argument 109 addr = HINIC_CSR_API_CMD_STATUS_ADDR(chain->chain_type); in get_hw_cons_idx() 110 val = hinic_hwif_read_reg(chain->hwif, addr); in get_hw_cons_idx() 115 static void dump_api_chain_reg(struct hinic_api_cmd_chain *chain) in dump_api_chain_reg() argument 119 addr = HINIC_CSR_API_CMD_STATUS_ADDR(chain->chain_type); in dump_api_chain_reg() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/qlogic/qed/ |
| D | qed_chain.c | 10 static void qed_chain_init(struct qed_chain *chain, in qed_chain_init() argument 14 memset(chain, 0, sizeof(*chain)); in qed_chain_init() 16 chain->elem_size = params->elem_size; in qed_chain_init() 17 chain->intended_use = params->intended_use; in qed_chain_init() 18 chain->mode = params->mode; in qed_chain_init() 19 chain->cnt_type = params->cnt_type; in qed_chain_init() 21 chain->elem_per_page = ELEMS_PER_PAGE(params->elem_size, in qed_chain_init() 23 chain->usable_per_page = USABLE_ELEMS_PER_PAGE(params->elem_size, in qed_chain_init() 26 chain->elem_unusable = UNUSABLE_ELEMS_PER_PAGE(params->elem_size, in qed_chain_init() 29 chain->elem_per_page_mask = chain->elem_per_page - 1; in qed_chain_init() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/qlogic/qed/ |
| D | qed_chain.c | 10 static void qed_chain_init(struct qed_chain *chain, in qed_chain_init() argument 14 memset(chain, 0, sizeof(*chain)); in qed_chain_init() 16 chain->elem_size = params->elem_size; in qed_chain_init() 17 chain->intended_use = params->intended_use; in qed_chain_init() 18 chain->mode = params->mode; in qed_chain_init() 19 chain->cnt_type = params->cnt_type; in qed_chain_init() 21 chain->elem_per_page = ELEMS_PER_PAGE(params->elem_size, in qed_chain_init() 23 chain->usable_per_page = USABLE_ELEMS_PER_PAGE(params->elem_size, in qed_chain_init() 26 chain->elem_unusable = UNUSABLE_ELEMS_PER_PAGE(params->elem_size, in qed_chain_init() 29 chain->elem_per_page_mask = chain->elem_per_page - 1; in qed_chain_init() [all …]
|
| /kernel/linux/linux-5.10/drivers/dma-buf/ |
| D | dma-fence-chain.c | 3 * fence-chain: chain fences together in a timeline 10 #include <linux/dma-fence-chain.h> 16 * @chain: chain node to get the previous node from 19 * chain node. 21 static struct dma_fence *dma_fence_chain_get_prev(struct dma_fence_chain *chain) in dma_fence_chain_get_prev() argument 26 prev = dma_fence_get_rcu_safe(&chain->prev); in dma_fence_chain_get_prev() 32 * dma_fence_chain_walk - chain walking function 33 * @fence: current chain node 35 * Walk the chain to the next node. Returns the next fence or NULL if we are at 36 * the end of the chain. Garbage collects chain nodes which are already [all …]
|
| /kernel/linux/linux-6.6/drivers/dma-buf/ |
| D | dma-fence-chain.c | 3 * fence-chain: chain fences together in a timeline 10 #include <linux/dma-fence-chain.h> 16 * @chain: chain node to get the previous node from 19 * chain node. 21 static struct dma_fence *dma_fence_chain_get_prev(struct dma_fence_chain *chain) in dma_fence_chain_get_prev() argument 26 prev = dma_fence_get_rcu_safe(&chain->prev); in dma_fence_chain_get_prev() 32 * dma_fence_chain_walk - chain walking function 33 * @fence: current chain node 35 * Walk the chain to the next node. Returns the next fence or NULL if we are at 36 * the end of the chain. Garbage collects chain nodes which are already [all …]
|
| /kernel/linux/linux-5.10/tools/testing/selftests/net/forwarding/ |
| D | tc_chains.sh | 38 tc filter add dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 45 check_fail $? "matched on filter in unreachable chain" 47 tc filter del dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 50 log_test "unreachable chain ($tcflags)" 57 tc filter add dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 62 $tcflags dst_mac $h2mac action goto chain 1 71 check_err $? "Did not match on correct filter with goto chain action" 74 check_err $? "Did not match on correct filter in chain 1" 78 tc filter del dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 81 log_test "gact goto chain ($tcflags)" [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/net/forwarding/ |
| D | tc_chains.sh | 38 tc filter add dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 45 check_fail $? "matched on filter in unreachable chain" 47 tc filter del dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 50 log_test "unreachable chain ($tcflags)" 57 tc filter add dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 62 $tcflags dst_mac $h2mac action goto chain 1 71 check_err $? "Did not match on correct filter with goto chain action" 74 check_err $? "Did not match on correct filter in chain 1" 78 tc filter del dev $h2 ingress chain 1 protocol ip pref 1 handle 1101 \ 81 log_test "gact goto chain ($tcflags)" [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
| D | fs_chains.c | 43 u32 chain; member 55 u32 chain; member 68 struct fs_chain *chain; member 77 .key_offset = offsetof(struct fs_chain, chain), 78 .key_len = sizeof_field(struct fs_chain, chain), 153 u32 chain, u32 prio, u32 level) in mlx5_chains_create_table() argument 164 sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? in mlx5_chains_create_table() 174 /* The root table(chain 0, prio 1, level 0) is required to be in mlx5_chains_create_table() 180 (chain == 0 && prio == 1 && level == 0)) { in mlx5_chains_create_table() 184 mlx5_get_fdb_sub_ns(chains->dev, chain) : in mlx5_chains_create_table() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/wireless/ath/ath9k/ |
| D | ar9003_rtt.c | 29 * There is an internal table (i.e. the rtt) for each chain (or bank). 72 static void ar9003_hw_rtt_load_hist_entry(struct ath_hw *ah, u8 chain, in ar9003_hw_rtt_load_hist_entry() argument 78 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_1_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 83 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 87 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 90 if (!ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), in ar9003_hw_rtt_load_hist_entry() 96 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 99 ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), in ar9003_hw_rtt_load_hist_entry() 106 int chain, i; in ar9003_hw_rtt_load_hist() local 108 for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { in ar9003_hw_rtt_load_hist() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/wireless/ath/ath9k/ |
| D | ar9003_rtt.c | 29 * There is an internal table (i.e. the rtt) for each chain (or bank). 72 static void ar9003_hw_rtt_load_hist_entry(struct ath_hw *ah, u8 chain, in ar9003_hw_rtt_load_hist_entry() argument 78 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_1_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 83 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 87 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 90 if (!ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), in ar9003_hw_rtt_load_hist_entry() 96 REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); in ar9003_hw_rtt_load_hist_entry() 99 ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), in ar9003_hw_rtt_load_hist_entry() 106 int chain, i; in ar9003_hw_rtt_load_hist() local 108 for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { in ar9003_hw_rtt_load_hist() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
| D | fs_chains.c | 63 u32 chain; member 75 u32 chain; member 88 struct fs_chain *chain; member 97 .key_offset = offsetof(struct fs_chain, chain), 98 .key_len = sizeof_field(struct fs_chain, chain), 220 u32 chain, u32 prio, u32 level) in mlx5_chains_create_table() argument 231 sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? in mlx5_chains_create_table() 244 /* The root table(chain 0, prio 1, level 0) is required to be in mlx5_chains_create_table() 250 (chain == 0 && prio == 1 && level == 0)) { in mlx5_chains_create_table() 254 mlx5_get_fdb_sub_ns(chains->dev, chain) : in mlx5_chains_create_table() [all …]
|
| /kernel/linux/linux-5.10/net/netfilter/ |
| D | nft_immediate.c | 74 struct nft_chain *chain = priv->data.verdict.chain; in nft_immediate_init() local 79 err = nf_tables_bind_chain(ctx, chain); in nft_immediate_init() 101 struct nft_chain *chain; in nft_immediate_activate() local 108 chain = data->verdict.chain; in nft_immediate_activate() 109 if (!nft_chain_binding(chain)) in nft_immediate_activate() 113 chain_ctx.chain = chain; in nft_immediate_activate() 115 list_for_each_entry(rule, &chain->rules, list) in nft_immediate_activate() 118 nft_clear(ctx->net, chain); in nft_immediate_activate() 129 struct nft_chain *chain, in nft_immediate_chain_deactivate() argument 136 chain_ctx.chain = chain; in nft_immediate_chain_deactivate() [all …]
|
| /kernel/linux/linux-6.6/net/netfilter/ |
| D | nft_immediate.c | 74 struct nft_chain *chain = priv->data.verdict.chain; in nft_immediate_init() local 79 err = nf_tables_bind_chain(ctx, chain); in nft_immediate_init() 101 struct nft_chain *chain; in nft_immediate_activate() local 108 chain = data->verdict.chain; in nft_immediate_activate() 109 if (!nft_chain_binding(chain)) in nft_immediate_activate() 113 chain_ctx.chain = chain; in nft_immediate_activate() 115 list_for_each_entry(rule, &chain->rules, list) in nft_immediate_activate() 118 nft_clear(ctx->net, chain); in nft_immediate_activate() 129 struct nft_chain *chain, in nft_immediate_chain_deactivate() argument 136 chain_ctx.chain = chain; in nft_immediate_chain_deactivate() [all …]
|
| /kernel/linux/linux-5.10/drivers/crypto/marvell/cesa/ |
| D | tdma.c | 51 writel_relaxed(dreq->chain.first->cur_dma, in mv_cesa_dma_step() 62 for (tdma = dreq->chain.first; tdma;) { in mv_cesa_dma_cleanup() 75 dreq->chain.first = NULL; in mv_cesa_dma_cleanup() 76 dreq->chain.last = NULL; in mv_cesa_dma_cleanup() 84 for (tdma = dreq->chain.first; tdma; tdma = tdma->next) { in mv_cesa_dma_prepare() 99 if (engine->chain.first == NULL && engine->chain.last == NULL) { in mv_cesa_tdma_chain() 100 engine->chain.first = dreq->chain.first; in mv_cesa_tdma_chain() 101 engine->chain.last = dreq->chain.last; in mv_cesa_tdma_chain() 105 last = engine->chain.last; in mv_cesa_tdma_chain() 106 last->next = dreq->chain.first; in mv_cesa_tdma_chain() [all …]
|
| /kernel/linux/linux-6.6/net/batman-adv/ |
| D | fragmentation.c | 32 * batadv_frag_clear_chain() - delete entries in the fragment buffer chain 33 * @head: head of chain with entries. 34 * @dropped: whether the chain is cleared because all fragments are dropped 63 struct batadv_frag_table_entry *chain; in batadv_frag_purge_orig() local 67 chain = &orig_node->fragments[i]; in batadv_frag_purge_orig() 68 spin_lock_bh(&chain->lock); in batadv_frag_purge_orig() 70 if (!check_cb || check_cb(chain)) { in batadv_frag_purge_orig() 71 batadv_frag_clear_chain(&chain->fragment_list, true); in batadv_frag_purge_orig() 72 chain->size = 0; in batadv_frag_purge_orig() 75 spin_unlock_bh(&chain->lock); in batadv_frag_purge_orig() [all …]
|
| /kernel/linux/linux-5.10/net/batman-adv/ |
| D | fragmentation.c | 33 * batadv_frag_clear_chain() - delete entries in the fragment buffer chain 34 * @head: head of chain with entries. 35 * @dropped: whether the chain is cleared because all fragments are dropped 64 struct batadv_frag_table_entry *chain; in batadv_frag_purge_orig() local 68 chain = &orig_node->fragments[i]; in batadv_frag_purge_orig() 69 spin_lock_bh(&chain->lock); in batadv_frag_purge_orig() 71 if (!check_cb || check_cb(chain)) { in batadv_frag_purge_orig() 72 batadv_frag_clear_chain(&chain->fragment_list, true); in batadv_frag_purge_orig() 73 chain->size = 0; in batadv_frag_purge_orig() 76 spin_unlock_bh(&chain->lock); in batadv_frag_purge_orig() [all …]
|
| /kernel/linux/linux-6.6/net/sched/ |
| D | cls_api.c | 54 const struct tcf_chain *chain; member 91 n->chain_index = tp->chain->index; in tcf_exts_miss_cookie_base_alloc() 92 n->chain = tp->chain; in tcf_exts_miss_cookie_base_alloc() 174 return jhash_3words(tp->chain->index, tp->prio, in destroy_obj_hashfn() 178 static void tcf_proto_signal_destroying(struct tcf_chain *chain, in tcf_proto_signal_destroying() argument 181 struct tcf_block *block = chain->block; in tcf_proto_signal_destroying() 192 return tp1->chain->index == tp2->chain->index && in tcf_proto_cmp() 197 static bool tcf_proto_exists_destroying(struct tcf_chain *chain, in tcf_proto_exists_destroying() argument 205 hash_for_each_possible_rcu(chain->block->proto_destroy_ht, iter, in tcf_proto_exists_destroying() 218 tcf_proto_signal_destroyed(struct tcf_chain *chain, struct tcf_proto *tp) in tcf_proto_signal_destroyed() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/s390/cio/ |
| D | vfio_ccw_cp.c | 34 /* Guest physical address of the current chain. */ 36 /* Count of the valid ccws in chain. */ 291 * @head: address of the beginning of a CCW chain 292 * @len: number of CCWs within the chain 294 * Determine whether the address of a CCW (whether a new chain, 316 struct ccwchain *chain; in ccwchain_alloc() local 321 size = ((sizeof(*chain) + 7L) & -8L) + in ccwchain_alloc() 322 sizeof(*chain->ch_ccw) * len + in ccwchain_alloc() 323 sizeof(*chain->ch_pa) * len; in ccwchain_alloc() 324 chain = kzalloc(size, GFP_DMA | GFP_KERNEL); in ccwchain_alloc() [all …]
|
| /kernel/linux/linux-6.6/kernel/ |
| D | notifier.c | 21 * Notifier chain core routines. The exported routines below 63 * @nl: Pointer to head of the blocking notifier chain 110 * @nl: Pointer to head of the blocking notifier chain 116 * NOTE: It is important the @nl chain doesn't change between the two 136 * Atomic notifier chain routines. Registration and unregistration 141 * atomic_notifier_chain_register - Add notifier to an atomic notifier chain 142 * @nh: Pointer to head of the atomic notifier chain 143 * @n: New entry in notifier chain 145 * Adds a notifier to an atomic notifier chain. 163 * atomic_notifier_chain_register_unique_prio - Add notifier to an atomic notifier chain [all …]
|
| /kernel/linux/linux-6.6/include/linux/qed/ |
| D | qed_chain.h | 22 /* Chain is a single page (next ptr) is not required */ 30 QED_CHAIN_USE_TO_PRODUCE, /* Chain starts empty */ 31 QED_CHAIN_USE_TO_CONSUME, /* Chain starts full */ 32 QED_CHAIN_USE_TO_CONSUME_PRODUCE, /* Chain starts empty */ 36 /* The chain's size/prod/cons are kept in 16-bit variables */ 39 /* The chain's size/prod/cons are kept in 32-bit variables */ 76 /* Fastpath portion of the chain - required for commands such 88 * chain pages, respectively to the physical addresses 120 /* Slowpath of the chain - required for initialization and destruction, 133 /* Address of first page of the chain - the address is required [all …]
|
| /kernel/linux/linux-5.10/net/sched/ |
| D | cls_api.c | 52 return jhash_3words(tp->chain->index, tp->prio, in destroy_obj_hashfn() 56 static void tcf_proto_signal_destroying(struct tcf_chain *chain, in tcf_proto_signal_destroying() argument 59 struct tcf_block *block = chain->block; in tcf_proto_signal_destroying() 70 return tp1->chain->index == tp2->chain->index && in tcf_proto_cmp() 75 static bool tcf_proto_exists_destroying(struct tcf_chain *chain, in tcf_proto_exists_destroying() argument 83 hash_for_each_possible_rcu(chain->block->proto_destroy_ht, iter, in tcf_proto_exists_destroying() 96 tcf_proto_signal_destroyed(struct tcf_chain *chain, struct tcf_proto *tp) in tcf_proto_signal_destroyed() argument 98 struct tcf_block *block = chain->block; in tcf_proto_signal_destroyed() 250 u32 prio, struct tcf_chain *chain, in tcf_proto_create() argument 269 tp->chain = chain; in tcf_proto_create() [all …]
|
| /kernel/linux/linux-5.10/kernel/ |
| D | notifier.c | 18 * Notifier chain core routines. The exported routines below 54 * @nl: Pointer to head of the blocking notifier chain 100 * @nl: Pointer to head of the blocking notifier chain 106 * NOTE: It is important the @nl chain doesn't change between the two 126 * Atomic notifier chain routines. Registration and unregistration 131 * atomic_notifier_chain_register - Add notifier to an atomic notifier chain 132 * @nh: Pointer to head of the atomic notifier chain 133 * @n: New entry in notifier chain 135 * Adds a notifier to an atomic notifier chain. 153 * atomic_notifier_chain_unregister - Remove notifier from an atomic notifier chain [all …]
|
| /kernel/linux/linux-5.10/include/linux/qed/ |
| D | qed_chain.h | 22 /* Chain is a single page (next ptr) is unrequired */ 30 QED_CHAIN_USE_TO_PRODUCE, /* Chain starts empty */ 31 QED_CHAIN_USE_TO_CONSUME, /* Chain starts full */ 32 QED_CHAIN_USE_TO_CONSUME_PRODUCE, /* Chain starts empty */ 36 /* The chain's size/prod/cons are kept in 16-bit variables */ 39 /* The chain's size/prod/cons are kept in 32-bit variables */ 76 /* Fastpath portion of the chain - required for commands such 88 * chain pages, respectively to the physical addresses 120 /* Slowpath of the chain - required for initialization and destruction, 133 /* Address of first page of the chain - the address is required [all …]
|
| /kernel/linux/linux-6.6/drivers/s390/cio/ |
| D | crw.c | 66 unsigned int chain; in crw_collect_info() local 73 chain = 0; in crw_collect_info() 77 if (unlikely(chain > 1)) { in crw_collect_info() 90 "chain\n", __func__, chain); in crw_collect_info() 93 chain = tmp_crw.chn ? chain + 1 : 0; in crw_collect_info() 96 ccode = stcrw(&crw[chain]); in crw_collect_info() 101 crw[chain].slct, crw[chain].oflw, crw[chain].chn, in crw_collect_info() 102 crw[chain].rsc, crw[chain].anc, crw[chain].erc, in crw_collect_info() 103 crw[chain].rsid); in crw_collect_info() 105 if (crw[chain].oflw) { in crw_collect_info() [all …]
|