Lines Matching refs:imu
138 struct io_mapped_ubuf *imu = *slot; in io_buffer_unmap() local
141 if (imu != &dummy_ubuf) { in io_buffer_unmap()
142 for (i = 0; i < imu->nr_bvecs; i++) in io_buffer_unmap()
143 unpin_user_page(imu->bvec[i].bv_page); in io_buffer_unmap()
144 if (imu->acct_pages) in io_buffer_unmap()
145 io_unaccount_mem(ctx, imu->acct_pages); in io_buffer_unmap()
146 kvfree(imu); in io_buffer_unmap()
446 struct io_mapped_ubuf *imu; in __io_sqe_buffers_update() local
463 err = io_sqe_buffer_register(ctx, &iov, &imu, &last_hpage); in __io_sqe_buffers_update()
472 io_buffer_unmap(ctx, &imu); in __io_sqe_buffers_update()
478 ctx->user_bufs[i] = imu; in __io_sqe_buffers_update()
991 struct io_mapped_ubuf *imu = ctx->user_bufs[i]; in headpage_already_acct() local
993 for (j = 0; j < imu->nr_bvecs; j++) { in headpage_already_acct()
994 if (!PageCompound(imu->bvec[j].bv_page)) in headpage_already_acct()
996 if (compound_head(imu->bvec[j].bv_page) == hpage) in headpage_already_acct()
1005 int nr_pages, struct io_mapped_ubuf *imu, in io_buffer_account_pin() argument
1010 imu->acct_pages = 0; in io_buffer_account_pin()
1013 imu->acct_pages++; in io_buffer_account_pin()
1023 imu->acct_pages += page_size(hpage) >> PAGE_SHIFT; in io_buffer_account_pin()
1027 if (!imu->acct_pages) in io_buffer_account_pin()
1030 ret = io_account_mem(ctx, imu->acct_pages); in io_buffer_account_pin()
1032 imu->acct_pages = 0; in io_buffer_account_pin()
1079 struct io_mapped_ubuf *imu = NULL; in io_sqe_buffer_register() local
1125 imu = kvmalloc(struct_size(imu, bvec, nr_pages), GFP_KERNEL); in io_sqe_buffer_register()
1126 if (!imu) in io_sqe_buffer_register()
1129 ret = io_buffer_account_pin(ctx, pages, nr_pages, imu, last_hpage); in io_sqe_buffer_register()
1138 imu->ubuf = (unsigned long) iov->iov_base; in io_sqe_buffer_register()
1139 imu->ubuf_end = imu->ubuf + iov->iov_len; in io_sqe_buffer_register()
1140 imu->nr_bvecs = nr_pages; in io_sqe_buffer_register()
1141 *pimu = imu; in io_sqe_buffer_register()
1145 bvec_set_page(&imu->bvec[0], pages[0], size, off); in io_sqe_buffer_register()
1152 bvec_set_page(&imu->bvec[i], pages[i], vec_len, off); in io_sqe_buffer_register()
1158 kvfree(imu); in io_sqe_buffer_register()
1224 struct io_mapped_ubuf *imu, in io_import_fixed() argument
1230 if (WARN_ON_ONCE(!imu)) in io_import_fixed()
1235 if (unlikely(buf_addr < imu->ubuf || buf_end > imu->ubuf_end)) in io_import_fixed()
1242 offset = buf_addr - imu->ubuf; in io_import_fixed()
1243 iov_iter_bvec(iter, ddir, imu->bvec, imu->nr_bvecs, offset + len); in io_import_fixed()
1262 const struct bio_vec *bvec = imu->bvec; in io_import_fixed()