| 4847 | } |
| 4848 | |
| 4849 | static void bnxt_free_ctx_mem(struct bnxt *bp) |
| 4850 | { |
| 4851 | int i; |
| 4852 | |
| 4853 | if (!bp->ctx || !(bp->ctx->flags & BNXT_CTX_FLAG_INITED)) |
| 4854 | return; |
| 4855 | |
| 4856 | bp->ctx->flags &= ~BNXT_CTX_FLAG_INITED; |
| 4857 | rte_free(bp->ctx->qp_mem.ctx_pg_arr); |
| 4858 | rte_free(bp->ctx->srq_mem.ctx_pg_arr); |
| 4859 | rte_free(bp->ctx->cq_mem.ctx_pg_arr); |
| 4860 | rte_free(bp->ctx->vnic_mem.ctx_pg_arr); |
| 4861 | rte_free(bp->ctx->stat_mem.ctx_pg_arr); |
| 4862 | rte_free(bp->ctx->qp_mem.ctx_dma_arr); |
| 4863 | rte_free(bp->ctx->srq_mem.ctx_dma_arr); |
| 4864 | rte_free(bp->ctx->cq_mem.ctx_dma_arr); |
| 4865 | rte_free(bp->ctx->vnic_mem.ctx_dma_arr); |
| 4866 | rte_free(bp->ctx->stat_mem.ctx_dma_arr); |
| 4867 | |
| 4868 | rte_memzone_free(bp->ctx->qp_mem.ring_mem.mz); |
| 4869 | rte_memzone_free(bp->ctx->srq_mem.ring_mem.mz); |
| 4870 | rte_memzone_free(bp->ctx->cq_mem.ring_mem.mz); |
| 4871 | rte_memzone_free(bp->ctx->vnic_mem.ring_mem.mz); |
| 4872 | rte_memzone_free(bp->ctx->stat_mem.ring_mem.mz); |
| 4873 | rte_memzone_free(bp->ctx->qp_mem.ring_mem.pg_tbl_mz); |
| 4874 | rte_memzone_free(bp->ctx->srq_mem.ring_mem.pg_tbl_mz); |
| 4875 | rte_memzone_free(bp->ctx->cq_mem.ring_mem.pg_tbl_mz); |
| 4876 | rte_memzone_free(bp->ctx->vnic_mem.ring_mem.pg_tbl_mz); |
| 4877 | rte_memzone_free(bp->ctx->stat_mem.ring_mem.pg_tbl_mz); |
| 4878 | |
| 4879 | for (i = 0; i < bp->ctx->tqm_fp_rings_count + 1; i++) { |
| 4880 | rte_free(bp->ctx->tqm_mem[i]->ctx_pg_arr); |
| 4881 | rte_free(bp->ctx->tqm_mem[i]->ctx_dma_arr); |
| 4882 | if (bp->ctx->tqm_mem[i]) |
| 4883 | rte_memzone_free(bp->ctx->tqm_mem[i]->ring_mem.mz); |
| 4884 | } |
| 4885 | |
| 4886 | rte_free(bp->ctx); |
| 4887 | bp->ctx = NULL; |
| 4888 | } |
| 4889 | |
| 4890 | #define bnxt_roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) |
| 4891 |
no test coverage detected