Lines Matching refs:mctx
190 bitmap_set(srgn->mctx->ppn_dirty, srgn_offset, in ufshpb_iterate_rgn()
266 if (unlikely(!srgn->mctx)) { in ufshpb_test_ppn_dirty()
278 if (find_next_bit(srgn->mctx->ppn_dirty, bit_len + srgn_offset, in ufshpb_test_ppn_dirty()
301 struct ufshpb_map_ctx *mctx, int pos, in ufshpb_fill_ppn_from_page() argument
316 page = mctx->m_page[index]; in ufshpb_fill_ppn_from_page()
460 if (!srgn->mctx) in ufshpb_prep_entry()
463 copied = ufshpb_fill_ppn_from_page(hpb, srgn->mctx, srgn_offset, in ufshpb_prep_entry()
683 err = ufshpb_fill_ppn_from_page(hpb, srgn->mctx, srgn_offset, 1, &ppn); in ufshpb_prep()
790 map_req->rb.mctx = srgn->mctx; in ufshpb_get_map_req()
818 if (!srgn->mctx) { in ufshpb_clear_dirty_bitmap()
828 bitmap_zero(srgn->mctx->ppn_dirty, num_entries); in ufshpb_clear_dirty_bitmap()
881 if (!srgn->mctx) { in ufshpb_activate_subregion()
980 ret = bio_add_pc_page(q, map_req->bio, map_req->rb.mctx->m_page[i], in ufshpb_execute_map_req()
1014 struct ufshpb_map_ctx *mctx; in ufshpb_get_map_ctx() local
1018 mctx = mempool_alloc(ufshpb_mctx_pool, GFP_KERNEL); in ufshpb_get_map_ctx()
1019 if (!mctx) in ufshpb_get_map_ctx()
1022 mctx->m_page = kmem_cache_alloc(hpb->m_page_cache, GFP_KERNEL); in ufshpb_get_map_ctx()
1023 if (!mctx->m_page) in ufshpb_get_map_ctx()
1029 mctx->ppn_dirty = bitmap_zalloc(num_entries, GFP_KERNEL); in ufshpb_get_map_ctx()
1030 if (!mctx->ppn_dirty) in ufshpb_get_map_ctx()
1034 mctx->m_page[i] = mempool_alloc(ufshpb_page_pool, GFP_KERNEL); in ufshpb_get_map_ctx()
1035 if (!mctx->m_page[i]) { in ufshpb_get_map_ctx()
1037 mempool_free(mctx->m_page[j], ufshpb_page_pool); in ufshpb_get_map_ctx()
1040 clear_page(page_address(mctx->m_page[i])); in ufshpb_get_map_ctx()
1043 return mctx; in ufshpb_get_map_ctx()
1046 bitmap_free(mctx->ppn_dirty); in ufshpb_get_map_ctx()
1048 kmem_cache_free(hpb->m_page_cache, mctx->m_page); in ufshpb_get_map_ctx()
1050 mempool_free(mctx, ufshpb_mctx_pool); in ufshpb_get_map_ctx()
1055 struct ufshpb_map_ctx *mctx) in ufshpb_put_map_ctx() argument
1060 mempool_free(mctx->m_page[i], ufshpb_page_pool); in ufshpb_put_map_ctx()
1062 bitmap_free(mctx->ppn_dirty); in ufshpb_put_map_ctx()
1063 kmem_cache_free(hpb->m_page_cache, mctx->m_page); in ufshpb_put_map_ctx()
1064 mempool_free(mctx, ufshpb_mctx_pool); in ufshpb_put_map_ctx()
1192 ufshpb_put_map_ctx(hpb, srgn->mctx); in ufshpb_purge_active_subregion()
1194 srgn->mctx = NULL; in ufshpb_purge_active_subregion()
1318 srgn->mctx = ufshpb_get_map_ctx(hpb, srgn->is_last); in ufshpb_issue_map_req()
1319 if (!srgn->mctx) { in ufshpb_issue_map_req()
1791 srgn->mctx = ufshpb_get_map_ctx(hpb, srgn->is_last); in ufshpb_init_pinned_active_region()
1793 if (!srgn->mctx) { in ufshpb_init_pinned_active_region()
1809 ufshpb_put_map_ctx(hpb, srgn->mctx); in ufshpb_init_pinned_active_region()
1972 ufshpb_put_map_ctx(hpb, srgn->mctx); in ufshpb_destroy_subregion_tbl()