drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on
authorChangbin Du <changbin.du@intel.com>
Tue, 30 Jan 2018 05:51:31 +0000 (13:51 +0800)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 6 Feb 2018 19:41:27 +0000 (11:41 -0800)
commitd480b28a41a628e356dbacfa1c9f6d05b9baf838
tree91063217f3bb888abf035ea0c245586e912e6b47
parent9212b13f28374815d9def65e3c877a35092e1c6e
drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on

When add 'x-no-mmap=on' for vfio-pci option, aperture access in guest
is emulated. But the vgpu_aperture_rw() function take wrong offset when
do memcpy, since vgpu->gm.aperture_va is not the base of entire aperture.
This mistake cause GPU command in guest get lost and so the seqno is not
updated in engine HWSP.

This patch fix this, and it also move the emulation code to kvmgt.
Because only vfio need to emulate it. Put aperture rw to MMIO emulation
path breaks assumptions in xengt.

v2: Remove PAGE_ALIGN for size (zhenyu)

Fixes: f090a00df9ec ("drm/i915/gvt: Add emulation for BAR2 (aperture) with normal file RW approach")
Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/gvt/cfg_space.c
drivers/gpu/drm/i915/gvt/gvt.h
drivers/gpu/drm/i915/gvt/kvmgt.c
drivers/gpu/drm/i915/gvt/mmio.c