Philippe Mathieu-Daudé <phi...@redhat.com> 于2019年10月8日周二 下午10:28写道:
> The PIIX4/PM is a PCI device within the PIIX4 chipset, it will be reset > when the PCI bus it stands on is reset. > > Convert its reset handler into a proper Device reset method. > > Reviewed-by: Igor Mammedov <imamm...@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Reviewed-by: Li Qiang <liq...@gmail.com> > --- > hw/acpi/piix4.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c > index 5742c3df87..4e079b39bd 100644 > --- a/hw/acpi/piix4.c > +++ b/hw/acpi/piix4.c > @@ -27,7 +27,6 @@ > #include "hw/pci/pci.h" > #include "hw/qdev-properties.h" > #include "hw/acpi/acpi.h" > -#include "sysemu/reset.h" > #include "sysemu/runstate.h" > #include "sysemu/sysemu.h" > #include "qapi/error.h" > @@ -344,9 +343,9 @@ static const VMStateDescription vmstate_acpi = { > } > }; > > -static void piix4_reset(void *opaque) > +static void piix4_pm_reset(DeviceState *dev) > { > - PIIX4PMState *s = opaque; > + PIIX4PMState *s = PIIX4_PM(dev); > PCIDevice *d = PCI_DEVICE(s); > uint8_t *pci_conf = d->config; > > @@ -542,7 +541,6 @@ static void piix4_pm_realize(PCIDevice *dev, Error > **errp) > > s->machine_ready.notify = piix4_pm_machine_ready; > qemu_add_machine_init_done_notifier(&s->machine_ready); > - qemu_register_reset(piix4_reset, s); > > piix4_acpi_system_hot_add_init(pci_address_space_io(dev), > pci_get_bus(dev), s); > @@ -692,6 +690,7 @@ static void piix4_pm_class_init(ObjectClass *klass, > void *data) > k->device_id = PCI_DEVICE_ID_INTEL_82371AB_3; > k->revision = 0x03; > k->class_id = PCI_CLASS_BRIDGE_OTHER; > + dc->reset = piix4_pm_reset; > dc->desc = "PM"; > dc->vmsd = &vmstate_acpi; > dc->props = piix4_pm_properties; > -- > 2.21.0 > > >