Lines Matching refs:vpfn
266 struct vfio_pfn *vpfn = rb_entry(p, struct vfio_pfn, node);
268 bitmap_set(dma->bitmap, (vpfn->iova - dma->iova) >> pgshift, 1);
325 struct vfio_pfn *vpfn;
329 vpfn = rb_entry(node, struct vfio_pfn, node);
331 if (iova < vpfn->iova)
333 else if (iova > vpfn->iova)
336 return vpfn;
345 struct vfio_pfn *vpfn;
350 vpfn = rb_entry(parent, struct vfio_pfn, node);
352 if (new->iova < vpfn->iova)
370 struct vfio_pfn *vpfn;
372 vpfn = kzalloc(sizeof(*vpfn), GFP_KERNEL);
373 if (!vpfn)
376 vpfn->iova = iova;
377 vpfn->pfn = pfn;
378 vpfn->ref_count = 1;
379 vfio_link_pfn(dma, vpfn);
384 struct vfio_pfn *vpfn)
386 vfio_unlink_pfn(dma, vpfn);
387 kfree(vpfn);
393 struct vfio_pfn *vpfn = vfio_find_vpfn(dma, iova);
395 if (vpfn)
396 vpfn->ref_count++;
397 return vpfn;
400 static int vfio_iova_put_vfio_pfn(struct vfio_dma *dma, struct vfio_pfn *vpfn)
404 vpfn->ref_count--;
405 if (!vpfn->ref_count) {
406 ret = put_pfn(vpfn->pfn, dma->prot);
407 vfio_remove_from_pfn_list(dma, vpfn);
771 struct vfio_pfn *vpfn = vfio_find_vpfn(dma, iova);
773 if (!vpfn)
776 unlocked = vfio_iova_put_vfio_pfn(dma, vpfn);
828 struct vfio_pfn *vpfn;
842 vpfn = vfio_iova_get_vfio_pfn(dma, iova);
843 if (vpfn) {
844 pages[i] = pfn_to_page(vpfn->pfn);
2362 struct vfio_pfn *vpfn = rb_entry(p, struct vfio_pfn,
2365 if (!is_invalid_reserved_pfn(vpfn->pfn))