Lines Matching refs:grefs
44 * Calculate number of grefs required to handle this buffer,
45 * e.g. if grefs are required for page directory only or the buffer
77 if (!buf->grefs)
80 return buf->grefs[0];
133 if (buf->grefs) {
137 if (buf->grefs[i] != INVALID_GRANT_REF)
138 gnttab_end_foreign_access(buf->grefs[i], NULL);
140 kfree(buf->grefs);
146 * Number of grefs a page can hold with respect to the
185 * plus grefs for the buffer pages.
205 if (!buf->pages || !buf->backend_map_handles || !buf->grefs)
266 * Read page directory to get grefs from the backend: for external
267 * buffer we only allocate buf->grefs for the page directory,
341 /* Fill only grefs for the page directory itself. */
345 page_dir->gref_dir_next_page = buf->grefs[i + 1];
368 * While copying, skip grefs at start, they are for pages
382 page_dir->gref_dir_next_page = buf->grefs[i + 1];
384 memcpy(&page_dir->gref, &buf->grefs[cur_gref],
416 buf->grefs[gref_idx++] = cur_ref;
456 buf->grefs[j++] = cur_ref;
477 buf->grefs = kcalloc(buf->num_grefs, sizeof(*buf->grefs), GFP_KERNEL);
478 if (!buf->grefs)