On Fri, 23 Oct 2015 14:55:26 +0200 Igor Mammedov <imamm...@redhat.com> wrote:
> currently acpi_memory_plug_cb() sets is_inserting for > cold- and hot-plugged DIMMs as result ASL MHPD.MSCN() > method issues device check even for every coldplugged > DIMM. There isn't much harm in it but if we try to > unplug such DIMM, OSPM will issue device check > intstead of device eject event. So OSPM won't eject > memory module as expected and it will try to eject it > only when another memory device is hot-(un)plugged. > > As a fix do not set 'is_inserting' event and do not > issue SCI for cold-plugged DIMMs as they are > enumerated and activated by OSPM during guest's boot. > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> ping > --- > hw/acpi/memory_hotplug.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c > index 2ff0d5c..ce428df 100644 > --- a/hw/acpi/memory_hotplug.c > +++ b/hw/acpi/memory_hotplug.c > @@ -238,10 +238,12 @@ void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, > MemHotplugState *mem_st, > > mdev->dimm = dev; > mdev->is_enabled = true; > - mdev->is_inserting = true; > + if (dev->hotplugged) { > + mdev->is_inserting = true; > > - /* do ACPI magic */ > - acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS); > + /* do ACPI magic */ > + acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS); > + } > return; > } >