From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44932) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W37M3-0007W1-Oi for qemu-devel@nongnu.org; Tue, 14 Jan 2014 12:00:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W37Lz-0006Or-3p for qemu-devel@nongnu.org; Tue, 14 Jan 2014 12:00:43 -0500 Received: from mx1.redhat.com ([209.132.183.28]:22546) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W37Ly-0006Og-P9 for qemu-devel@nongnu.org; Tue, 14 Jan 2014 12:00:39 -0500 From: Igor Mammedov Date: Tue, 14 Jan 2014 17:55:45 +0100 Message-Id: <1389718554-2387-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH 0/9 v4] Refactor PCI/SHPC/PCIE hotplug to use a more generic hotplug API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.crosthwaite@xilinx.com, marcel.a@redhat.com, mst@redhat.com, aliguori@amazon.com, pbonzini@redhat.com, afaerber@suse.de changes since v3: - fixup/add comments as reqused by Peter Crosthwaite - use error_abort to reduce error handling verbosity - fix tests/test-qdev-global-props build failure on make check - rebase on top of current master:133fe7743 (with interface fixes) Reference to previous version: http://lists.gnu.org/archive/html/qemu-devel/2013-12/msg02461.html git tree for testing: https://github.com/imammedo/qemu/commits/hotplug_dev_inf_v4 Igor Mammedov (9): define hotplug interface qdev: add to BusState "hotplug-handler" link qdev: add "hotpluggable" property to Device hw/acpi: move typeinfo to the file end qdev:pci: refactor PCIDevice to use generic "hotpluggable" property acpi/piix4pm: convert ACPI PCI hotplug to use hotplug-handler API pci/shpc: convert SHPC hotplug to use hotplug-handler API pci/pcie: convert PCIE hotplug to use hotplug-handler API hw/pci: switch to a generic hotplug handling for PCIDevice hw/acpi/piix4.c | 156 ++++++++++++++++++++-------------------- hw/core/Makefile.objs | 1 + hw/core/hotplug.c | 48 ++++++++++++ hw/core/qdev.c | 50 ++++++++++++- hw/display/cirrus_vga.c | 2 +- hw/display/qxl.c | 2 +- hw/display/vga-pci.c | 2 +- hw/display/vmware_vga.c | 2 +- hw/i386/acpi-build.c | 6 +- hw/ide/piix.c | 4 +- hw/isa/piix4.c | 2 +- hw/pci-bridge/pci_bridge_dev.c | 9 +++ hw/pci-host/piix.c | 6 +- hw/pci/pci.c | 40 +---------- hw/pci/pcie.c | 67 +++++++++++------- hw/pci/pcie_port.c | 8 ++ hw/pci/shpc.c | 127 ++++++++++++++++++++------------ hw/usb/hcd-ehci-pci.c | 2 +- hw/usb/hcd-ohci.c | 2 +- hw/usb/hcd-uhci.c | 2 +- hw/usb/hcd-xhci.c | 2 +- include/hw/hotplug.h | 78 ++++++++++++++++++++ include/hw/pci/pci.h | 13 ---- include/hw/pci/pci_bus.h | 2 - include/hw/pci/pcie.h | 5 ++ include/hw/pci/shpc.h | 8 ++ include/hw/qdev-core.h | 8 ++ tests/Makefile | 2 +- 28 files changed, 432 insertions(+), 224 deletions(-) create mode 100644 hw/core/hotplug.c create mode 100644 include/hw/hotplug.h