Lines Matching defs:chunk
51 struct ib_umem_chunk *chunk, *tmp;
54 list_for_each_entry_safe(chunk, tmp, &umem->chunk_list, list) {
55 ib_dma_unmap_sg(dev, chunk->page_list,
56 chunk->nents, DMA_BIDIRECTIONAL);
57 for (i = 0; i < chunk->nents; ++i) {
58 struct page *page = sg_page(&chunk->page_list[i]);
65 kfree(chunk);
83 struct ib_umem_chunk *chunk;
165 chunk = kmalloc(sizeof *chunk + sizeof (struct scatterlist) *
168 if (!chunk) {
173 chunk->nents = min_t(int, ret, IB_UMEM_MAX_PAGE_CHUNK);
174 sg_init_table(chunk->page_list, chunk->nents);
175 for (i = 0; i < chunk->nents; ++i) {
179 sg_set_page(&chunk->page_list[i], page_list[i + off], PAGE_SIZE, 0);
182 chunk->nmap = ib_dma_map_sg_attrs(context->device,
183 &chunk->page_list[0],
184 chunk->nents,
187 if (chunk->nmap <= 0) {
188 for (i = 0; i < chunk->nents; ++i)
189 put_page(sg_page(&chunk->page_list[i]));
190 kfree(chunk);
196 ret -= chunk->nents;
197 off += chunk->nents;
198 list_add_tail(&chunk->list, &umem->chunk_list);
280 struct ib_umem_chunk *chunk;
288 list_for_each_entry(chunk, &umem->chunk_list, list)
289 for (i = 0; i < chunk->nmap; ++i)
290 n += sg_dma_len(&chunk->page_list[i]) >> shift;