mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 14:34:13 -04:00
drm/i915/gvt: devirtualize dma_pin_guest_page
Just call the function directly and remove a pointless wrapper. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Zhi Wang <zhi.a.wang@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20220411141403.86980-23-hch@lst.de Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
This commit is contained in:
committed by
Zhi Wang
parent
8398eee85f
commit
91879bbaf8
@@ -42,18 +42,6 @@
|
||||
|
||||
#define GEN8_DECODE_PTE(pte) (pte & GENMASK_ULL(63, 12))
|
||||
|
||||
static int vgpu_pin_dma_address(struct intel_vgpu *vgpu,
|
||||
unsigned long size,
|
||||
dma_addr_t dma_addr)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (intel_gvt_hypervisor_dma_pin_guest_page(vgpu, dma_addr))
|
||||
ret = -EINVAL;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int vgpu_gem_get_pages(
|
||||
struct drm_i915_gem_object *obj)
|
||||
{
|
||||
@@ -89,7 +77,7 @@ static int vgpu_gem_get_pages(
|
||||
for_each_sg(st->sgl, sg, page_num, i) {
|
||||
dma_addr_t dma_addr =
|
||||
GEN8_DECODE_PTE(readq(>t_entries[i]));
|
||||
if (vgpu_pin_dma_address(vgpu, PAGE_SIZE, dma_addr)) {
|
||||
if (intel_gvt_dma_pin_guest_page(vgpu, dma_addr)) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -767,6 +767,7 @@ void intel_gvt_debugfs_clean(struct intel_gvt *gvt);
|
||||
|
||||
int intel_gvt_page_track_add(struct intel_vgpu *info, u64 gfn);
|
||||
int intel_gvt_page_track_remove(struct intel_vgpu *info, u64 gfn);
|
||||
int intel_gvt_dma_pin_guest_page(struct intel_vgpu *vgpu, dma_addr_t dma_addr);
|
||||
int intel_gvt_dma_map_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
|
||||
unsigned long size, dma_addr_t *dma_addr);
|
||||
void intel_gvt_dma_unmap_guest_page(struct intel_vgpu *vgpu,
|
||||
|
||||
@@ -45,8 +45,6 @@ struct intel_vgpu;
|
||||
struct intel_gvt_mpt {
|
||||
int (*host_init)(struct device *dev, void *gvt);
|
||||
void (*host_exit)(struct device *dev, void *gvt);
|
||||
|
||||
int (*dma_pin_guest_page)(struct intel_vgpu *vgpu, dma_addr_t dma_addr);
|
||||
};
|
||||
|
||||
#endif /* _GVT_HYPERCALL_H_ */
|
||||
|
||||
@@ -1921,8 +1921,7 @@ int intel_gvt_dma_map_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int kvmgt_dma_pin_guest_page(struct intel_vgpu *vgpu,
|
||||
dma_addr_t dma_addr)
|
||||
int intel_gvt_dma_pin_guest_page(struct intel_vgpu *vgpu, dma_addr_t dma_addr)
|
||||
{
|
||||
struct gvt_dma *entry;
|
||||
int ret = 0;
|
||||
@@ -1968,7 +1967,6 @@ void intel_gvt_dma_unmap_guest_page(struct intel_vgpu *vgpu,
|
||||
static const struct intel_gvt_mpt kvmgt_mpt = {
|
||||
.host_init = kvmgt_host_init,
|
||||
.host_exit = kvmgt_host_exit,
|
||||
.dma_pin_guest_page = kvmgt_dma_pin_guest_page,
|
||||
};
|
||||
|
||||
struct intel_gvt_host intel_gvt_host = {
|
||||
|
||||
@@ -71,19 +71,4 @@ static inline void intel_gvt_hypervisor_host_exit(struct device *dev, void *gvt)
|
||||
intel_gvt_host.mpt->host_exit(dev, gvt);
|
||||
}
|
||||
|
||||
/**
|
||||
* intel_gvt_hypervisor_dma_pin_guest_page - pin guest dma buf
|
||||
* @vgpu: a vGPU
|
||||
* @dma_addr: guest dma addr
|
||||
*
|
||||
* Returns:
|
||||
* 0 on success, negative error code if failed.
|
||||
*/
|
||||
static inline int
|
||||
intel_gvt_hypervisor_dma_pin_guest_page(struct intel_vgpu *vgpu,
|
||||
dma_addr_t dma_addr)
|
||||
{
|
||||
return intel_gvt_host.mpt->dma_pin_guest_page(vgpu, dma_addr);
|
||||
}
|
||||
|
||||
#endif /* _GVT_MPT_H_ */
|
||||
|
||||
Reference in New Issue
Block a user