Lines Matching refs:rss
1051 return ena_dev->rss.hash_func; in ena_com_get_current_hash_function()
1057 (ena_dev->rss).hash_key; in ena_com_hash_key_fill_default_key()
1068 struct ena_rss *rss = &ena_dev->rss; in ena_com_hash_key_allocate() local
1074 rss->hash_key = in ena_com_hash_key_allocate()
1075 dma_alloc_coherent(ena_dev->dmadev, sizeof(*rss->hash_key), in ena_com_hash_key_allocate()
1076 &rss->hash_key_dma_addr, GFP_KERNEL); in ena_com_hash_key_allocate()
1078 if (unlikely(!rss->hash_key)) in ena_com_hash_key_allocate()
1086 struct ena_rss *rss = &ena_dev->rss; in ena_com_hash_key_destroy() local
1088 if (rss->hash_key) in ena_com_hash_key_destroy()
1089 dma_free_coherent(ena_dev->dmadev, sizeof(*rss->hash_key), in ena_com_hash_key_destroy()
1090 rss->hash_key, rss->hash_key_dma_addr); in ena_com_hash_key_destroy()
1091 rss->hash_key = NULL; in ena_com_hash_key_destroy()
1096 struct ena_rss *rss = &ena_dev->rss; in ena_com_hash_ctrl_init() local
1098 rss->hash_ctrl = in ena_com_hash_ctrl_init()
1099 dma_alloc_coherent(ena_dev->dmadev, sizeof(*rss->hash_ctrl), in ena_com_hash_ctrl_init()
1100 &rss->hash_ctrl_dma_addr, GFP_KERNEL); in ena_com_hash_ctrl_init()
1102 if (unlikely(!rss->hash_ctrl)) in ena_com_hash_ctrl_init()
1110 struct ena_rss *rss = &ena_dev->rss; in ena_com_hash_ctrl_destroy() local
1112 if (rss->hash_ctrl) in ena_com_hash_ctrl_destroy()
1113 dma_free_coherent(ena_dev->dmadev, sizeof(*rss->hash_ctrl), in ena_com_hash_ctrl_destroy()
1114 rss->hash_ctrl, rss->hash_ctrl_dma_addr); in ena_com_hash_ctrl_destroy()
1115 rss->hash_ctrl = NULL; in ena_com_hash_ctrl_destroy()
1121 struct ena_rss *rss = &ena_dev->rss; in ena_com_indirect_table_allocate() local
1142 rss->rss_ind_tbl = in ena_com_indirect_table_allocate()
1144 &rss->rss_ind_tbl_dma_addr, GFP_KERNEL); in ena_com_indirect_table_allocate()
1145 if (unlikely(!rss->rss_ind_tbl)) in ena_com_indirect_table_allocate()
1149 rss->host_rss_ind_tbl = in ena_com_indirect_table_allocate()
1151 if (unlikely(!rss->host_rss_ind_tbl)) in ena_com_indirect_table_allocate()
1154 rss->tbl_log_size = log_size; in ena_com_indirect_table_allocate()
1162 dma_free_coherent(ena_dev->dmadev, tbl_size, rss->rss_ind_tbl, in ena_com_indirect_table_allocate()
1163 rss->rss_ind_tbl_dma_addr); in ena_com_indirect_table_allocate()
1164 rss->rss_ind_tbl = NULL; in ena_com_indirect_table_allocate()
1166 rss->tbl_log_size = 0; in ena_com_indirect_table_allocate()
1172 struct ena_rss *rss = &ena_dev->rss; in ena_com_indirect_table_destroy() local
1173 size_t tbl_size = (1ULL << rss->tbl_log_size) * in ena_com_indirect_table_destroy()
1176 if (rss->rss_ind_tbl) in ena_com_indirect_table_destroy()
1177 dma_free_coherent(ena_dev->dmadev, tbl_size, rss->rss_ind_tbl, in ena_com_indirect_table_destroy()
1178 rss->rss_ind_tbl_dma_addr); in ena_com_indirect_table_destroy()
1179 rss->rss_ind_tbl = NULL; in ena_com_indirect_table_destroy()
1181 if (rss->host_rss_ind_tbl) in ena_com_indirect_table_destroy()
1182 devm_kfree(ena_dev->dmadev, rss->host_rss_ind_tbl); in ena_com_indirect_table_destroy()
1183 rss->host_rss_ind_tbl = NULL; in ena_com_indirect_table_destroy()
1262 struct ena_rss *rss = &ena_dev->rss; in ena_com_ind_tbl_convert_to_device() local
1267 for (i = 0; i < 1 << rss->tbl_log_size; i++) { in ena_com_ind_tbl_convert_to_device()
1268 qid = rss->host_rss_ind_tbl[i]; in ena_com_ind_tbl_convert_to_device()
1277 rss->rss_ind_tbl[i].cq_idx = io_sq->idx; in ena_com_ind_tbl_convert_to_device()
2243 struct ena_rss *rss = &ena_dev->rss; in ena_com_set_hash_function() local
2262 if (!(get_resp.u.flow_hash_func.supported_func & BIT(rss->hash_func))) { in ena_com_set_hash_function()
2264 rss->hash_func); in ena_com_set_hash_function()
2274 cmd.u.flow_hash_func.init_val = rss->hash_init_val; in ena_com_set_hash_function()
2275 cmd.u.flow_hash_func.selected_func = 1 << rss->hash_func; in ena_com_set_hash_function()
2279 rss->hash_key_dma_addr); in ena_com_set_hash_function()
2285 cmd.control_buffer.length = sizeof(*rss->hash_key); in ena_com_set_hash_function()
2294 rss->hash_func, ret); in ena_com_set_hash_function()
2308 struct ena_rss *rss = &ena_dev->rss; in ena_com_fill_hash_function() local
2311 hash_key = rss->hash_key; in ena_com_fill_hash_function()
2319 rss->hash_key_dma_addr, in ena_com_fill_hash_function()
2320 sizeof(*rss->hash_key), 0); in ena_com_fill_hash_function()
2338 rss->hash_init_val = init_val; in ena_com_fill_hash_function()
2343 rss->hash_init_val = init_val; in ena_com_fill_hash_function()
2350 old_func = rss->hash_func; in ena_com_fill_hash_function()
2351 rss->hash_func = func; in ena_com_fill_hash_function()
2356 rss->hash_func = old_func; in ena_com_fill_hash_function()
2364 struct ena_rss *rss = &ena_dev->rss; in ena_com_get_hash_function() local
2373 rss->hash_key_dma_addr, in ena_com_get_hash_function()
2374 sizeof(*rss->hash_key), 0); in ena_com_get_hash_function()
2379 rss->hash_func = ffs(get_resp.u.flow_hash_func.selected_func); in ena_com_get_hash_function()
2380 if (rss->hash_func) in ena_com_get_hash_function()
2381 rss->hash_func--; in ena_com_get_hash_function()
2383 *func = rss->hash_func; in ena_com_get_hash_function()
2391 ena_dev->rss.hash_key; in ena_com_get_hash_key()
2404 struct ena_rss *rss = &ena_dev->rss; in ena_com_get_hash_ctrl() local
2410 rss->hash_ctrl_dma_addr, in ena_com_get_hash_ctrl()
2411 sizeof(*rss->hash_ctrl), 0); in ena_com_get_hash_ctrl()
2416 *fields = rss->hash_ctrl->selected_fields[proto].fields; in ena_com_get_hash_ctrl()
2424 struct ena_rss *rss = &ena_dev->rss; in ena_com_set_hash_ctrl() local
2425 struct ena_admin_feature_rss_hash_control *hash_ctrl = rss->hash_ctrl; in ena_com_set_hash_ctrl()
2449 rss->hash_ctrl_dma_addr); in ena_com_set_hash_ctrl()
2469 struct ena_rss *rss = &ena_dev->rss; in ena_com_set_default_hash_ctrl() local
2471 rss->hash_ctrl; in ena_com_set_default_hash_ctrl()
2532 struct ena_rss *rss = &ena_dev->rss; in ena_com_fill_hash_ctrl() local
2533 struct ena_admin_feature_rss_hash_control *hash_ctrl = rss->hash_ctrl; in ena_com_fill_hash_ctrl()
2568 struct ena_rss *rss = &ena_dev->rss; in ena_com_indirect_table_fill_entry() local
2570 if (unlikely(entry_idx >= (1 << rss->tbl_log_size))) in ena_com_indirect_table_fill_entry()
2576 rss->host_rss_ind_tbl[entry_idx] = entry_value; in ena_com_indirect_table_fill_entry()
2584 struct ena_rss *rss = &ena_dev->rss; in ena_com_indirect_table_set() local
2608 cmd.u.ind_table.size = rss->tbl_log_size; in ena_com_indirect_table_set()
2613 rss->rss_ind_tbl_dma_addr); in ena_com_indirect_table_set()
2619 cmd.control_buffer.length = (1ULL << rss->tbl_log_size) * in ena_com_indirect_table_set()
2636 struct ena_rss *rss = &ena_dev->rss; in ena_com_indirect_table_get() local
2641 tbl_size = (1ULL << rss->tbl_log_size) * in ena_com_indirect_table_get()
2646 rss->rss_ind_tbl_dma_addr, in ena_com_indirect_table_get()
2654 for (i = 0; i < (1 << rss->tbl_log_size); i++) in ena_com_indirect_table_get()
2655 ind_tbl[i] = rss->host_rss_ind_tbl[i]; in ena_com_indirect_table_get()
2664 memset(&ena_dev->rss, 0x0, sizeof(ena_dev->rss)); in ena_com_rss_init()
2701 memset(&ena_dev->rss, 0x0, sizeof(ena_dev->rss)); in ena_com_rss_destroy()