|
From: | Liran Alon |
Subject: | Re: [PULL 027/115] hw/i386/vmport: Propagate IOPort read to vCPU EAX register |
Date: | Tue, 23 Jun 2020 12:34:59 +0300 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
On 23/06/2020 11:46, Laurent Vivier wrote:
On 11/06/2020 21:43, Paolo Bonzini wrote:From: Liran Alon <liran.alon@oracle.com> vmport_ioport_read() returns the value that should propagate to vCPU EAX register when guest reads VMPort IOPort (i.e. By x86 IN instruction). However, because vmport_ioport_read() calls cpu_synchronize_state(), the returned value gets overridden by the value in QEMU vCPU EAX register. i.e. cpu->env.regs[R_EAX]. To fix this issue, change vmport_ioport_read() to explicitly override cpu->env.regs[R_EAX] with the value it wish to propagate to vCPU EAX register. Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com> Signed-off-by: Liran Alon <liran.alon@oracle.com> Message-Id: <20200312165431.82118-4-liran.alon@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/core/machine.c | 1 + hw/i386/vmport.c | 32 +++++++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index bb3a7b18b1..83f0fe5c91 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -43,6 +43,7 @@ GlobalProperty hw_compat_4_2[] = { { "qxl", "revision", "4" }, { "qxl-vga", "revision", "4" }, { "fw_cfg", "acpi-mr-restore", "false" }, + { "vmport", "x-read-set-eax", "off" },This is modifying the hw_compat_4_2 properties while qemu-5.0 has been already released. I think all the vmport property updates [1] should go to hw_compat_5_0. Liran? Paolo?
When I submitted these patches, QEMU 5.0 wasn't released yet. That's why I updated hw_compat_4_2[].
Having said that, I believe the compatibility risk here is very small and therefore because QEMU 5.0 was released for a very short time-span before these patches were merged, I'm not sure it's really preferable to move these flags to hw_compat_5_0[]. But I will leave this for Paolo to decide. (Note that moving these flags will also risk in comparability people running with current patches and
specifying explicitly machine-type 5.0...) -Liran
Thanks, Laurent [1] b889212973da hw/i386/vmport: Propagate IOPort read to vCPU EAX register 0342ee761ef2 hw/i386/vmport: Set EAX to -1 on failed and unsupported commands f8bdc550370f hw/i386/vmport: Report vmware-vmx-type in CMD_GETVERSION aaacf1c15a22 hw/i386/vmport: Add support for CMD_GETBIOSUUID { "vmport", "x-read-set-eax", "off" }, { "vmport", "x-signal-unsupported-cmd", "off" }, { "vmport", "x-report-vmx-type", "off" }, { "vmport", "x-cmds-v2", "off" },
[Prev in Thread] | Current Thread | [Next in Thread] |