hw/xen: Set emu_mask for igd_opregion register
authorXiong Zhang <xiong.y.zhang@intel.com>
Fri, 7 Jul 2017 04:07:58 +0000 (12:07 +0800)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 18 Jul 2017 20:26:35 +0000 (13:26 -0700)
In igd passthrough environment, guest could only access opregion at the
first bootup time. Once guest shutdown, later guest couldn't access
opregion anymore.
This is because qemu set emulated guest opregion base address to host
register. Later guest get a wrong host opregion base address, and couldn't
access it anymore.

This patch set emu_mask for igd_opregion register, so guest won't set
guest opregion base address to host.

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
hw/xen/xen_pt_config_init.c

index 6f18366f6768ee3d7b72f588dc990a6329124a04..1f04ec5eecb48b3be3ddbe29695e78dafed973ae 100644 (file)
@@ -1535,6 +1535,7 @@ static XenPTRegInfo xen_pt_emu_reg_igd_opregion[] = {
         .offset     = 0x0,
         .size       = 4,
         .init_val   = 0,
+        .emu_mask   = 0xFFFFFFFF,
         .u.dw.read   = xen_pt_intel_opregion_read,
         .u.dw.write  = xen_pt_intel_opregion_write,
     },