hw/misc/vmcoreinfo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Guest and host formats in struct FWCfgVMCoreInfo are written in little endian
format. However, the hypervisor host might be big endian. We need to do
appropriate conversions between the formats before comparing the values. Fix it.
Signed-off-by: Ani Sinha <anisinha@redhat.com>
---
hw/misc/vmcoreinfo.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/misc/vmcoreinfo.c b/hw/misc/vmcoreinfo.c
index 833773ade5..e00df95e29 100644
--- a/hw/misc/vmcoreinfo.c
+++ b/hw/misc/vmcoreinfo.c
@@ -21,9 +21,10 @@
static void fw_cfg_vmci_write(void *dev, off_t offset, size_t len)
{
VMCoreInfoState *s = VMCOREINFO(dev);
+ uint16_t guest_format = le16_to_cpu(s->vmcoreinfo.guest_format);
s->has_vmcoreinfo = offset == 0 && len == sizeof(s->vmcoreinfo)
- && s->vmcoreinfo.guest_format != FW_CFG_VMCOREINFO_FORMAT_NONE;
+ && guest_format != FW_CFG_VMCOREINFO_FORMAT_NONE;
}
static void vmcoreinfo_reset(void *dev)
--
2.42.0
Hi On Fri, Jul 12, 2024 at 10:25 AM Ani Sinha <anisinha@redhat.com> wrote: > > Guest and host formats in struct FWCfgVMCoreInfo are written in little endian > format. However, the hypervisor host might be big endian. We need to do > appropriate conversions between the formats before comparing the values. Fix it. > Looks right, but that shouldn't matter since the comparison is with 0. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > Signed-off-by: Ani Sinha <anisinha@redhat.com> > --- > hw/misc/vmcoreinfo.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/hw/misc/vmcoreinfo.c b/hw/misc/vmcoreinfo.c > index 833773ade5..e00df95e29 100644 > --- a/hw/misc/vmcoreinfo.c > +++ b/hw/misc/vmcoreinfo.c > @@ -21,9 +21,10 @@ > static void fw_cfg_vmci_write(void *dev, off_t offset, size_t len) > { > VMCoreInfoState *s = VMCOREINFO(dev); > + uint16_t guest_format = le16_to_cpu(s->vmcoreinfo.guest_format); > > s->has_vmcoreinfo = offset == 0 && len == sizeof(s->vmcoreinfo) > - && s->vmcoreinfo.guest_format != FW_CFG_VMCOREINFO_FORMAT_NONE; > + && guest_format != FW_CFG_VMCOREINFO_FORMAT_NONE; > } > > static void vmcoreinfo_reset(void *dev) > -- > 2.42.0 >
© 2016 - 2024 Red Hat, Inc.