Lines Matching defs:info
2894 static void free_mr_info(struct qedr_dev *dev, struct mr_info *info)
2898 if (info->pbl_table)
2899 list_add_tail(&info->pbl_table->list_entry,
2900 &info->free_pbl_list);
2902 if (!list_empty(&info->inuse_pbl_list))
2903 list_splice(&info->inuse_pbl_list, &info->free_pbl_list);
2905 list_for_each_entry_safe(pbl, tmp, &info->free_pbl_list, list_entry) {
2907 qedr_free_pbl(dev, &info->pbl_info, pbl);
2911 static int init_mr_info(struct qedr_dev *dev, struct mr_info *info,
2917 INIT_LIST_HEAD(&info->free_pbl_list);
2918 INIT_LIST_HEAD(&info->inuse_pbl_list);
2920 rc = qedr_prepare_pbl_tbl(dev, &info->pbl_info,
2925 info->pbl_table = qedr_alloc_pbl_tbl(dev, &info->pbl_info, GFP_KERNEL);
2926 if (IS_ERR(info->pbl_table)) {
2927 rc = PTR_ERR(info->pbl_table);
2932 &info->pbl_table->pa);
2937 tmp = qedr_alloc_pbl_tbl(dev, &info->pbl_info, GFP_KERNEL);
2943 list_add_tail(&tmp->list_entry, &info->free_pbl_list);
2949 free_mr_info(dev, info);
2982 rc = init_mr_info(dev, &mr->info,
2987 qedr_populate_pbls(dev, mr->umem, mr->info.pbl_table,
2988 &mr->info.pbl_info, PAGE_SHIFT);
3010 mr->hw_mr.pbl_ptr = mr->info.pbl_table[0].pa;
3011 mr->hw_mr.pbl_two_level = mr->info.pbl_info.two_layered;
3012 mr->hw_mr.pbl_page_size_log = ilog2(mr->info.pbl_info.pbl_size);
3037 qedr_free_pbl(dev, &mr->info.pbl_info, mr->info.pbl_table);
3056 free_mr_info(dev, &mr->info);
3085 rc = init_mr_info(dev, &mr->info, max_page_list_len, 1);
3110 mr->hw_mr.pbl_two_level = mr->info.pbl_info.two_layered;
3111 mr->hw_mr.pbl_page_size_log = ilog2(mr->info.pbl_info.pbl_size);
3132 qedr_free_pbl(dev, &mr->info.pbl_info, mr->info.pbl_table);
3161 if (unlikely(mr->npages == mr->info.pbl_info.num_pbes)) {
3169 pbes_in_page = mr->info.pbl_info.pbl_size / sizeof(u64);
3170 pbl_table = mr->info.pbl_table + (mr->npages / pbes_in_page);
3181 static void handle_completed_mrs(struct qedr_dev *dev, struct mr_info *info)
3183 int work = info->completed - info->completed_handled - 1;
3186 while (work-- > 0 && !list_empty(&info->inuse_pbl_list)) {
3194 pbl = list_first_entry(&info->inuse_pbl_list,
3196 list_move_tail(&pbl->list_entry, &info->free_pbl_list);
3197 info->completed_handled++;
3208 handle_completed_mrs(mr->dev, &mr->info);
3468 fwqe2->pbl_addr.hi = upper_32_bits(mr->info.pbl_table->pa);
3469 fwqe2->pbl_addr.lo = lower_32_bits(mr->info.pbl_table->pa);
4055 qp->wqe_wr_id[qp->sq.cons].mr->info.completed++;
4091 qp->wqe_wr_id[qp->sq.cons].mr->info.completed++;
4139 /* if we have extra WC fill it with actual error info */