| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | rqt.c | 34 void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir, in mlx5e_rss_params_indir_init_uniform() argument 39 for (i = 0; i < indir->actual_table_size; i++) in mlx5e_rss_params_indir_init_uniform() 40 indir->table[i] = i % num_channels; in mlx5e_rss_params_indir_init_uniform() 113 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_calc_indir_rqns() argument 117 for (i = 0; i < indir->actual_table_size; i++) { in mlx5e_calc_indir_rqns() 121 ix = mlx5e_bits_invert(ix, ilog2(indir->actual_table_size)); in mlx5e_calc_indir_rqns() 123 ix = indir->table[ix]; in mlx5e_calc_indir_rqns() 140 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_rqt_init_indir() argument 145 rss_rqns = kvmalloc_array(indir->actual_table_size, sizeof(*rss_rqns), GFP_KERNEL); in mlx5e_rqt_init_indir() 150 rss_vhca_ids = kvmalloc_array(indir->actual_table_size, sizeof(*rss_vhca_ids), in mlx5e_rqt_init_indir() [all …]
|
| H A D | rqt.h | 19 void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir, 32 u8 hfunc, struct mlx5e_rss_params_indir *indir); 45 u8 hfunc, struct mlx5e_rss_params_indir *indir);
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
| H A D | indir_table.c | 49 struct mlx5_esw_indir_table *indir = kvzalloc(sizeof(*indir), GFP_KERNEL); in mlx5_esw_indir_table_init() local 51 if (!indir) in mlx5_esw_indir_table_init() 54 mutex_init(&indir->lock); in mlx5_esw_indir_table_init() 55 hash_init(indir->table); in mlx5_esw_indir_table_init() 56 return indir; in mlx5_esw_indir_table_init() 60 mlx5_esw_indir_table_destroy(struct mlx5_esw_indir_table *indir) in mlx5_esw_indir_table_destroy() argument 62 mutex_destroy(&indir->lock); in mlx5_esw_indir_table_destroy() 63 kvfree(indir); in mlx5_esw_indir_table_destroy() 293 hash_add(esw->fdb_table.offloads.indir->table, &e->hlist, in mlx5_esw_indir_table_entry_create() 316 hash_for_each_possible(esw->fdb_table.offloads.indir->table, e, hlist, key) in mlx5_esw_indir_table_entry_lookup() [all …]
|
| H A D | indir_table.h | 12 mlx5_esw_indir_table_destroy(struct mlx5_esw_indir_table *indir); 38 mlx5_esw_indir_table_destroy(struct mlx5_esw_indir_table *indir) in mlx5_esw_indir_table_destroy() argument
|
| /linux/fs/freevxfs/ |
| H A D | vxfs_bmap.c | 65 __fs32 *indir; in vxfs_bmap_ext4() local 72 indir = (__fs32 *)buf->b_data; in vxfs_bmap_ext4() 73 bno = fs32_to_cpu(sbi, indir[(bn / indsize) % (indsize * bn)]) + in vxfs_bmap_ext4() 107 vxfs_bmap_indir(struct inode *ip, long indir, int size, long block) in vxfs_bmap_indir() argument 119 indir + (i / VXFS_TYPED_PER_BLOCK(ip->i_sb))); in vxfs_bmap_indir()
|
| /linux/drivers/net/ethernet/sfc/ |
| H A D | ethtool_common.c | 1174 if (rxfh->indir) in efx_ethtool_get_rxfh() 1175 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_ethtool_get_rxfh() 1190 const u32 *indir = rxfh->indir; in efx_ethtool_modify_rxfh_context() local 1209 if (!indir) in efx_ethtool_modify_rxfh_context() 1210 indir = ethtool_rxfh_context_indir(ctx); in efx_ethtool_modify_rxfh_context() 1212 return efx->type->rx_push_rss_context_config(efx, priv, indir, key, in efx_ethtool_modify_rxfh_context() 1233 if (!rxfh->indir) in efx_ethtool_create_rxfh_context() 1269 u32 *indir = rxfh->indir; in efx_ethtool_set_rxfh() local 1281 if (!indir && !key) in efx_ethtool_set_rxfh() 1286 if (!indir) in efx_ethtool_set_rxfh() [all …]
|
| H A D | rx_common.h | 89 void efx_set_default_rx_indir_table(struct efx_nic *efx, u32 *indir);
|
| H A D | rx_common.c | 573 void efx_set_default_rx_indir_table(struct efx_nic *efx, u32 *indir) in efx_set_default_rx_indir_table() argument 578 indir[i] = ethtool_rxfh_indir_default(i, efx->rss_spread); in efx_set_default_rx_indir_table()
|
| /linux/tools/testing/selftests/drivers/net/hw/ |
| H A D | toeplitz.c | 528 if (rsp->_count.indir > RSS_MAX_INDIR) in read_rss_dev_info_ynl() 530 rsp->_count.indir, RSS_MAX_INDIR); in read_rss_dev_info_ynl() 533 if (rsp->_count.indir) { in read_rss_dev_info_ynl() 534 memcpy(rss_indir_tbl, rsp->indir, in read_rss_dev_info_ynl() 535 rsp->_count.indir * sizeof(rss_indir_tbl[0])); in read_rss_dev_info_ynl() 536 rss_indir_tbl_size = rsp->_count.indir; in read_rss_dev_info_ynl()
|
| /linux/drivers/net/ethernet/microchip/ |
| H A D | lan743x_ethtool.c | 961 if (rxfh->indir) { in lan743x_ethtool_get_rxfh() 970 rxfh->indir[byte_index + 0] = in lan743x_ethtool_get_rxfh() 972 rxfh->indir[byte_index + 1] = in lan743x_ethtool_get_rxfh() 974 rxfh->indir[byte_index + 2] = in lan743x_ethtool_get_rxfh() 976 rxfh->indir[byte_index + 3] = in lan743x_ethtool_get_rxfh() 1009 u32 *indir = rxfh->indir; in lan743x_ethtool_set_rxfh() local 1016 if (indir) { in lan743x_ethtool_set_rxfh() 1024 (((indir[byte_index + 0] & 0x000000FF) << 0) | in lan743x_ethtool_set_rxfh() 1025 ((indir[byte_index + 1] & 0x000000FF) << 8) | in lan743x_ethtool_set_rxfh() 1026 ((indir[byte_index + 2] & 0x000000FF) << 16) | in lan743x_ethtool_set_rxfh() [all …]
|
| /linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/ |
| H A D | hclge_comm_rss.c | 277 struct hclge_comm_hw *hw, const u16 *indir) in hclge_comm_set_rss_indir_table() argument 301 qid = indir[i * HCLGE_COMM_RSS_CFG_TBL_SIZE + j]; in hclge_comm_set_rss_indir_table() 371 u32 *indir, u16 rss_ind_tbl_size) in hclge_comm_get_rss_indir_tbl() argument 375 if (!indir) in hclge_comm_get_rss_indir_tbl() 379 indir[i] = rss_cfg->rss_indirection_tbl[i]; in hclge_comm_get_rss_indir_tbl()
|
| H A D | hclge_comm_rss.h | 107 u32 *indir, u16 rss_ind_tbl_size); 118 struct hclge_comm_hw *hw, const u16 *indir);
|
| /linux/drivers/net/ethernet/marvell/mvpp2/ |
| H A D | mvpp2_cls.c | 1488 mvpp22_rxfh_indir(port, table->indir[i])); in mvpp22_rss_fill_table() 1588 const u32 *indir) in mvpp22_port_rss_ctx_indir_set() argument 1597 memcpy(rss_table->indir, indir, in mvpp22_port_rss_ctx_indir_set() 1598 MVPP22_RSS_TABLE_ENTRIES * sizeof(rss_table->indir[0])); in mvpp22_port_rss_ctx_indir_set() 1606 u32 *indir) in mvpp22_port_rss_ctx_indir_get() argument 1615 memcpy(indir, rss_table->indir, in mvpp22_port_rss_ctx_indir_get() 1616 MVPP22_RSS_TABLE_ENTRIES * sizeof(rss_table->indir[0])); in mvpp22_port_rss_ctx_indir_get() 1727 table->indir[i] = ethtool_rxfh_indir_default(i, port->nrxqs); in mvpp22_port_rss_init()
|
| H A D | mvpp2_cls.h | 271 const u32 *indir); 273 u32 *indir);
|
| /linux/drivers/net/ethernet/sfc/siena/ |
| H A D | ethtool_common.c | 1162 if (rxfh->indir) in efx_siena_ethtool_get_rxfh() 1163 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_siena_ethtool_get_rxfh() 1176 u32 *indir = rxfh->indir; in efx_siena_ethtool_set_rxfh() local 1184 if (!indir && !key) in efx_siena_ethtool_set_rxfh() 1189 if (!indir) in efx_siena_ethtool_set_rxfh() 1190 indir = efx->rss_context.rx_indir_table; in efx_siena_ethtool_set_rxfh() 1192 return efx->type->rx_push_rss_config(efx, true, indir, key); in efx_siena_ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/huawei/hinic/ |
| H A D | hinic_ethtool.c | 1061 const u32 *indir, const u8 *key) in __set_rss_rxfh() argument 1066 if (indir) { in __set_rss_rxfh() 1075 memcpy(nic_dev->rss_indir_user, indir, in __set_rss_rxfh() 1079 nic_dev->rss_tmpl_idx, indir); in __set_rss_rxfh() 1140 if (rxfh->indir) { in hinic_get_rxfh() 1143 rxfh->indir); in hinic_get_rxfh() 1181 err = __set_rss_rxfh(netdev, rxfh->indir, rxfh->key); in hinic_set_rxfh()
|
| /linux/drivers/net/ethernet/aquantia/atlantic/ |
| H A D | aq_ethtool.c | 455 if (rxfh->indir) { in aq_ethtool_get_rss() 457 rxfh->indir[i] = cfg->aq_rss.indirection_table[i]; in aq_ethtool_get_rss() 484 if (rxfh->indir) in aq_ethtool_set_rss() 486 cfg->aq_rss.indirection_table[i] = rxfh->indir[i]; in aq_ethtool_set_rss()
|
| /linux/net/ethtool/ |
| H A D | common.c | 734 rxfh.indir = kcalloc(dev_size, sizeof(rxfh.indir[0]), GFP_USER); in ethtool_get_max_rxfh_channel() 735 if (!rxfh.indir) in ethtool_get_max_rxfh_channel() 747 current_max = max(current_max, rxfh.indir[dev_size]); in ethtool_check_max_channel() 750 kfree(rxfh.indir); in ethtool_check_max_channel()
|
| /linux/drivers/net/ethernet/emulex/benet/ |
| H A D | be_ethtool.c | 1274 if (rxfh->indir) { in be_get_rxfh() 1276 rxfh->indir[i] = rss->rss_queue[i]; in be_get_rxfh() 1301 if (rxfh->indir) { in be_set_rxfh() 1305 j = rxfh->indir[i]; in be_set_rxfh()
|
| /linux/drivers/net/ethernet/sfc/falcon/ |
| H A D | ethtool.c | 1268 if (rxfh->indir) in ef4_ethtool_get_rxfh() 1269 memcpy(rxfh->indir, efx->rx_indir_table, in ef4_ethtool_get_rxfh() 1285 if (!rxfh->indir) in ef4_ethtool_set_rxfh() 1288 return efx->type->rx_push_rss_config(efx, true, rxfh->indir); in ef4_ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/hisilicon/hns/ |
| H A D | hns_ethtool.c | 1201 if (!rxfh->indir) in hns_get_rss() 1205 rxfh->indir, rxfh->key, &rxfh->hfunc); in hns_get_rss() 1230 rxfh->indir, rxfh->key, rxfh->hfunc); in hns_set_rss()
|
| /linux/drivers/net/ethernet/intel/igc/ |
| H A D | igc_ethtool.c | 1497 if (!rxfh->indir) in igc_ethtool_get_rxfh() 1500 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in igc_ethtool_get_rxfh() 1518 if (!rxfh->indir) in igc_ethtool_set_rxfh() 1525 if (rxfh->indir[i] >= num_queues) in igc_ethtool_set_rxfh() 1529 adapter->rss_indir_tbl[i] = rxfh->indir[i]; in igc_ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/qlogic/qede/ |
| H A D | qede_ethtool.c | 1377 if (!rxfh->indir) in qede_get_rxfh() 1381 rxfh->indir[i] = edev->rss_ind_table[i]; in qede_get_rxfh() 1407 if (!rxfh->indir && !rxfh->key) in qede_set_rxfh() 1410 if (rxfh->indir) { in qede_set_rxfh() 1412 edev->rss_ind_table[i] = rxfh->indir[i]; in qede_set_rxfh()
|
| /linux/drivers/net/ethernet/intel/fm10k/ |
| H A D | fm10k.h | 522 void fm10k_write_reta(struct fm10k_intfc *interface, const u32 *indir);
|
| /linux/drivers/net/ethernet/chelsio/cxgb4/ |
| H A D | cxgb4_ethtool.c | 1593 if (!rxfh->indir) in get_rss_table() 1596 rxfh->indir[n] = pi->rss[n]; in get_rss_table() 1614 if (!rxfh->indir) in set_rss_table() 1620 pi->rss[i] = rxfh->indir[i]; in set_rss_table()
|