pvpanic: initialization cleanup
PATCH 1/1 pvpanic: initialization cleanup
Avoid use of static variables: PC systems initialize pvpanic device through pvpanic_init,
so we can simply create the fw_cfg file at that point. This also makes it possible to assert if fw_cfg is not there rather than skipping the device silently.
Signed-off-by Michael S. Tsirkin <[email protected]>
--- hw/misc/pvpanic.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-)
hw/misc/pvpanic.c +10 -13
@@ -97,25 +97,22 @@ static void pvpanic_isa_realizefn(DeviceState *dev, Error **errp) {ISADevice *d =ISA_DEVICE (dev);PVPanicState *s =ISA_PVPANIC_DEVICE (dev); -static bool port_configured; -FWCfgState *fw_cfg;isa_register_ioport (d, &s->io, s->ioport); - -if (!port_configured) { - fw_cfg =fw_cfg_find (); -if (fw_cfg) { -fw_cfg_add_file (fw_cfg,"etc/pvpanic-port" , -g_memdup (&s->ioport,sizeof (s->ioport)), -sizeof (s->ioport)); - port_configured = true; - } - } }int pvpanic_init (ISABus *bus) { -isa_create_simple (bus,TYPE_ISA_PVPANIC_DEVICE ); +ISADevice *dev =isa_create_simple (bus,TYPE_ISA_PVPANIC_DEVICE ); +PVPanicState *s =ISA_PVPANIC_DEVICE (dev); +FWCfgState *fw_cfg =object_resolve_path ("/machine/fw_cfg" ,NULL ); + +assert (fw_cfg); + +fw_cfg_add_file (fw_cfg,"etc/pvpanic-port" , +g_memdup (&s->ioport,sizeof (s->ioport)), +sizeof (s->ioport)); +return 0 ; }
Signature · 1 line
MST