Hotplug triggers both 'present detect change' and 'attention button pressed'.
Hotunplug starts by triggering 'attention button pressed', then waits for the OS to power off the device and only then detaches it. patch 1/3: trivial debug message fix patch 2/3: enable 'power controller' to receive power events from guests patch 3/3: the actual hotplug/hotunplug implementation. Tested with Linux and Windows guests and with an e1000 with "PCIe" capability. Notes: Windows requires devices to be pci express in order to enable hotplug functionality, so we need to think about converting virtio devices to pci express. Linux outputs a "Surprise Removal/Addition" info message because we trigger 2 events in the same time, however this warning can be disregarded or a kernel patch submitted for our scenario. Marcel Apfelbaum (3): hw/pcie: corrected a debug message hw/pcie: implement power controller functionality hw/pcie: better hotplug/hotunplug support hw/pci/pcie.c | 37 ++++++++++++++++++++++++++++++------- include/hw/pci/pcie_regs.h | 2 ++ 2 files changed, 32 insertions(+), 7 deletions(-) -- 1.8.3.1