Skip to content

Commit ec7301d

Browse files
yanzhao56zhenyw
authored andcommitted
drm/i915/gvt: switch to user vfio_group_pin/upin_pages
substitute vfio_pin_pages() and vfio_unpin_pages() with vfio_group_pin_pages() and vfio_group_unpin_pages(), so that it will not go through looking up, checking, referencing, dereferencing of VFIO group in each call. Signed-off-by: Yan Zhao <[email protected]> Reviewed-by: Zhenyu Wang <[email protected]> Signed-off-by: Zhenyu Wang <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent b59b2a3 commit ec7301d

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/gpu/drm/i915/gvt/kvmgt.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ static void gvt_unpin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
152152
unsigned long size)
153153
{
154154
struct drm_i915_private *i915 = vgpu->gvt->gt->i915;
155+
struct kvmgt_vdev *vdev = kvmgt_vdev(vgpu);
155156
int total_pages;
156157
int npage;
157158
int ret;
@@ -161,7 +162,7 @@ static void gvt_unpin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
161162
for (npage = 0; npage < total_pages; npage++) {
162163
unsigned long cur_gfn = gfn + npage;
163164

164-
ret = vfio_unpin_pages(mdev_dev(kvmgt_vdev(vgpu)->mdev), &cur_gfn, 1);
165+
ret = vfio_group_unpin_pages(vdev->vfio_group, &cur_gfn, 1);
165166
drm_WARN_ON(&i915->drm, ret != 1);
166167
}
167168
}
@@ -170,6 +171,7 @@ static void gvt_unpin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
170171
static int gvt_pin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
171172
unsigned long size, struct page **page)
172173
{
174+
struct kvmgt_vdev *vdev = kvmgt_vdev(vgpu);
173175
unsigned long base_pfn = 0;
174176
int total_pages;
175177
int npage;
@@ -184,8 +186,8 @@ static int gvt_pin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
184186
unsigned long cur_gfn = gfn + npage;
185187
unsigned long pfn;
186188

187-
ret = vfio_pin_pages(mdev_dev(kvmgt_vdev(vgpu)->mdev), &cur_gfn, 1,
188-
IOMMU_READ | IOMMU_WRITE, &pfn);
189+
ret = vfio_group_pin_pages(vdev->vfio_group, &cur_gfn, 1,
190+
IOMMU_READ | IOMMU_WRITE, &pfn);
189191
if (ret != 1) {
190192
gvt_vgpu_err("vfio_pin_pages failed for gfn 0x%lx, ret %d\n",
191193
cur_gfn, ret);

0 commit comments

Comments
 (0)