Lines Matching defs:tidbuf

16 static u32 find_phys_blocks(struct tid_user_buf *tidbuf, unsigned int npages);
133 struct tid_user_buf *tidbuf,
149 pages = &tidbuf->pages[idx];
159 static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf)
162 unsigned int npages = tidbuf->npages;
163 unsigned long vaddr = tidbuf->vaddr;
192 tidbuf->pages = pages;
255 struct tid_user_buf *tidbuf;
263 tidbuf = kzalloc(sizeof(*tidbuf), GFP_KERNEL);
264 if (!tidbuf)
267 mutex_init(&tidbuf->cover_mutex);
268 tidbuf->vaddr = tinfo->vaddr;
269 tidbuf->length = tinfo->length;
270 tidbuf->npages = num_user_pages(tidbuf->vaddr, tidbuf->length);
271 tidbuf->psets = kcalloc(uctxt->expected_count, sizeof(*tidbuf->psets),
273 if (!tidbuf->psets) {
280 &tidbuf->notifier, current->mm,
281 tidbuf->vaddr, tidbuf->npages * PAGE_SIZE,
285 mmu_seq = mmu_interval_read_begin(&tidbuf->notifier);
288 pinned = pin_rcv_pages(fd, tidbuf);
295 tidbuf->n_psets = find_phys_blocks(tidbuf, pinned);
299 if (fd->tid_used + tidbuf->n_psets > fd->tid_limit)
302 pageset_count = tidbuf->n_psets;
333 ret = program_rcvarray(fd, tidbuf, grp,
378 ret = program_rcvarray(fd, tidbuf, grp,
425 unpin_rcv_pages(fd, tidbuf, NULL, mapped_pages, pinned - mapped_pages,
432 mutex_lock(&tidbuf->cover_mutex);
433 fail = mmu_interval_read_retry(&tidbuf->notifier, mmu_seq);
434 mutex_unlock(&tidbuf->cover_mutex);
452 mmu_interval_notifier_remove(&tidbuf->notifier);
453 kfree(tidbuf->pages);
454 kfree(tidbuf->psets);
455 kfree(tidbuf);
472 mmu_interval_notifier_remove(&tidbuf->notifier);
474 unpin_rcv_pages(fd, tidbuf, NULL, 0, pinned, false);
476 kfree(tidbuf->pages);
477 kfree(tidbuf->psets);
478 kfree(tidbuf);
565 static u32 find_phys_blocks(struct tid_user_buf *tidbuf, unsigned int npages)
569 struct page **pages = tidbuf->pages;
570 struct tid_pageset *list = tidbuf->psets;
946 struct tid_user_buf *tidbuf =
951 mutex_lock(&tidbuf->cover_mutex);
953 mutex_unlock(&tidbuf->cover_mutex);