/kernel/linux/linux-6.6/drivers/infiniband/hw/hns/ |
H A D | hns_roce_hem.c | 84 static bool hns_roce_check_hem_null(struct hns_roce_hem **hem, u64 hem_idx, in hns_roce_check_hem_null() argument 92 if (i != hem_idx && hem[i]) in hns_roce_check_hem_null() 219 * QPC/MTPT/CQC/SRQC/SCCC alloc hem for buffer pages. in hns_roce_calc_hem_mhop() 220 * MTT/CQE alloc hem for bt pages. in hns_roce_calc_hem_mhop() 257 struct hns_roce_hem *hem; in hns_roce_alloc_hem() local 264 hem = kmalloc(sizeof(*hem), in hns_roce_alloc_hem() 266 if (!hem) in hns_roce_alloc_hem() 269 INIT_LIST_HEAD(&hem->chunk_list); in hns_roce_alloc_hem() 284 list_add_tail(&chunk->list, &hem in hns_roce_alloc_hem() 315 hns_roce_free_hem(struct hns_roce_dev *hr_dev, struct hns_roce_hem *hem) hns_roce_free_hem() argument 730 struct hns_roce_hem *hem; hns_roce_table_find() local 1002 struct hns_roce_hem_item *hem; hem_list_alloc_item() local 1026 hem_list_free_item(struct hns_roce_dev *hr_dev, struct hns_roce_hem_item *hem, bool exist_bt) hem_list_free_item() argument 1038 struct hns_roce_hem_item *hem, *temp_hem; hem_list_free_all() local 1053 hem_list_assign_bt(struct hns_roce_dev *hr_dev, struct hns_roce_hem_item *hem, void *cpu_addr, u64 phy_addr) hem_list_assign_bt() argument 1061 hem_list_page_is_in_range(struct hns_roce_hem_item *hem, int offset) hem_list_page_is_in_range() argument 1070 struct hns_roce_hem_item *hem, *temp_hem; hem_list_search_item() local 1246 struct hns_roce_hem_item *hem; alloc_root_hem() local 1275 struct hns_roce_hem_item *hem; alloc_fake_root_bt() local 1293 struct hns_roce_hem_item *hem, *temp_hem; setup_middle_bt() local 1485 struct hns_roce_hem_item *hem, *temp_hem; hns_roce_hem_list_find_mtt() local [all...] |
H A D | hns_roce_hem.h | 89 struct hns_roce_hem *hem; member 104 void hns_roce_free_hem(struct hns_roce_dev *hr_dev, struct hns_roce_hem *hem); 136 static inline void hns_roce_hem_first(struct hns_roce_hem *hem, in hns_roce_hem_first() argument 139 iter->hem = hem; in hns_roce_hem_first() 140 iter->chunk = list_empty(&hem->chunk_list) ? NULL : in hns_roce_hem_first() 141 list_entry(hem->chunk_list.next, in hns_roce_hem_first() 154 if (iter->chunk->list.next == &iter->hem->chunk_list) { in hns_roce_hem_next()
|
H A D | hns_roce_device.h | 247 struct hns_roce_hem **hem; member
|
H A D | hns_roce_hw_v2.c | 1877 "failed to config vf-%u hem res, ret = %d.\n", in hns_roce_alloc_vf_resource() 4000 dev_warn(hr_dev->dev, "failed to check hem type %u.\n", type); in get_op_for_set_hem() 4051 struct hns_roce_hem *hem; in hns_roce_v2_set_hem() local 4085 hem = table->hem[hem_idx]; in hns_roce_v2_set_hem() 4086 for (hns_roce_hem_first(hem, &iter); in hns_roce_v2_set_hem()
|
/kernel/linux/linux-5.10/drivers/infiniband/hw/hns/ |
H A D | hns_roce_hem.c | 82 static bool hns_roce_check_hem_null(struct hns_roce_hem **hem, u64 hem_idx, in hns_roce_check_hem_null() argument 90 if (i != hem_idx && hem[i]) in hns_roce_check_hem_null() 209 * QPC/MTPT/CQC/SRQC/SCCC alloc hem for buffer pages. in hns_roce_calc_hem_mhop() 210 * MTT/CQE alloc hem for bt pages. in hns_roce_calc_hem_mhop() 248 struct hns_roce_hem *hem; in hns_roce_alloc_hem() local 255 hem = kmalloc(sizeof(*hem), in hns_roce_alloc_hem() 257 if (!hem) in hns_roce_alloc_hem() 260 INIT_LIST_HEAD(&hem->chunk_list); in hns_roce_alloc_hem() 275 list_add_tail(&chunk->list, &hem in hns_roce_alloc_hem() 306 hns_roce_free_hem(struct hns_roce_dev *hr_dev, struct hns_roce_hem *hem) hns_roce_free_hem() argument 712 struct hns_roce_hem *hem; hns_roce_table_find() local 977 struct roce_hem_item *hem; hem_list_alloc_item() local 1002 hem_list_free_item(struct hns_roce_dev *hr_dev, struct roce_hem_item *hem, bool exist_bt) hem_list_free_item() argument 1014 struct roce_hem_item *hem, *temp_hem; hem_list_free_all() local 1029 hem_list_assign_bt(struct hns_roce_dev *hr_dev, struct roce_hem_item *hem, void *cpu_addr, u64 phy_addr) hem_list_assign_bt() argument 1037 hem_list_page_is_in_range(struct roce_hem_item *hem, int offset) hem_list_page_is_in_range() argument 1046 struct roce_hem_item *hem, *temp_hem; hem_list_search_item() local 1223 struct roce_hem_item *hem, *temp_hem, *root_hem; hem_list_alloc_root_bt() local 1401 struct roce_hem_item *hem, *temp_hem; hns_roce_hem_list_find_mtt() local [all...] |
H A D | hns_roce_hem.h | 88 struct hns_roce_hem *hem; member 103 void hns_roce_free_hem(struct hns_roce_dev *hr_dev, struct hns_roce_hem *hem); 136 static inline void hns_roce_hem_first(struct hns_roce_hem *hem, in hns_roce_hem_first() argument 139 iter->hem = hem; in hns_roce_hem_first() 140 iter->chunk = list_empty(&hem->chunk_list) ? NULL : in hns_roce_hem_first() 141 list_entry(hem->chunk_list.next, in hns_roce_hem_first() 154 if (iter->chunk->list.next == &iter->hem->chunk_list) { in hns_roce_hem_next()
|
H A D | hns_roce_device.h | 311 struct hns_roce_hem **hem; member
|
H A D | hns_roce_hw_v2.c | 3622 struct hns_roce_hem *hem; in hns_roce_v2_set_hem() local 3656 hem = table->hem[hem_idx]; in hns_roce_v2_set_hem() 3657 for (hns_roce_hem_first(hem, &iter); in hns_roce_v2_set_hem()
|
H A D | hns_roce_hw_v1.c | 491 for (hns_roce_hem_first(table->hem[i], &iter); in hns_roce_v1_set_hem()
|