qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 14/14] spapr_pci: emit hotplug add/remove events


From: Michael Roth
Subject: [Qemu-devel] [PATCH v2 14/14] spapr_pci: emit hotplug add/remove events during hotplug
Date: Thu, 5 Dec 2013 16:33:05 -0600

From: Tyrel Datwyler <address@hidden>

This uses extension of existing EPOW interrupt/event mechanism
to notify userspace tools like librtas/drmgr to handle
in-guest configuration/cleanup operations in response to
device_add/device_del.

Userspace tools that don't implement this extension will need
to be run manually in response/advance of device_add/device_del,
respectively.

Signed-off-by: Tyrel Datwyler <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
---
 hw/ppc/spapr_pci.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 9b4f829..9821462 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1129,14 +1129,18 @@ static void spapr_device_hotplug_remove(DeviceState 
*qdev, PCIDevice *dev)
 static int spapr_device_hotplug(DeviceState *qdev, PCIDevice *dev,
                                 PCIHotplugState state)
 {
+    int slot = PCI_SLOT(dev->devfn);
+
     if (state == PCI_COLDPLUG_ENABLED) {
         return 0;
     }
 
     if (state == PCI_HOTPLUG_ENABLED) {
         spapr_device_hotplug_add(qdev, dev);
+        spapr_pci_hotplug_add_event(qdev, slot);
     } else {
         spapr_device_hotplug_remove(qdev, dev);
+        spapr_pci_hotplug_remove_event(qdev, slot);
     }
 
     return 0;
-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]