diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c index 83ed2260818732d3fb5f2b215ec7761ec90687d6..792d8e48ba492a04a16de27d349b98f8eb2f90d0 100644 --- a/hw/misc/pvpanic.c +++ b/hw/misc/pvpanic.c @@ -104,10 +104,11 @@ static void pvpanic_isa_realizefn(DeviceState *dev, Error **errp) static void pvpanic_fw_cfg(ISADevice *dev, FWCfgState *fw_cfg) { PVPanicState *s = ISA_PVPANIC_DEVICE(dev); + uint16_t *pvpanic_port = g_malloc(sizeof(*pvpanic_port)); + *pvpanic_port = cpu_to_le16(s->ioport); - fw_cfg_add_file(fw_cfg, "etc/pvpanic-port", - g_memdup(&s->ioport, sizeof(s->ioport)), - sizeof(s->ioport)); + fw_cfg_add_file(fw_cfg, "etc/pvpanic-port", pvpanic_port, + sizeof(*pvpanic_port)); } void pvpanic_init(ISABus *bus)