msi_init() & msix_init() are supporting functions for PCI devices. catch the errors they produced and report.
V2 changelog: 1. Modify as per Markus`s review a. Try to cleanup on function fail, as possible as I can. b. For .init() function, use error_report_err() and return non-zero value. c. For .realize(), propagate the error. d. Special case: TYPE_ICH9_AHCI, it is a on-board device initialized with machine init, so don`t bother to cleanup on failure, as process will exit anyway. Cao jin (2): Add param Error** to msi_init() & modify the callers Add param Error** to msix_init() & modify the callers hw/audio/intel-hda.c | 10 ++++- hw/block/nvme.c | 32 +++++++++----- hw/ide/ich.c | 2 +- hw/misc/ivshmem.c | 7 ++- hw/net/rocker/rocker.c | 10 +++-- hw/net/vmxnet3.c | 39 +++++++++++------ hw/pci-bridge/ioh3420.c | 7 ++- hw/pci-bridge/pci_bridge_dev.c | 8 +++- hw/pci-bridge/xio3130_downstream.c | 8 +++- hw/pci-bridge/xio3130_upstream.c | 8 +++- hw/pci/msi.c | 18 ++++++-- hw/pci/msix.c | 20 ++++++--- hw/scsi/megasas.c | 35 +++++++++++---- hw/scsi/vmw_pvscsi.c | 13 ++++-- hw/usb/hcd-xhci.c | 88 +++++++++++++++++++++----------------- hw/vfio/pci.c | 28 ++++++------ hw/virtio/virtio-bus.c | 3 ++ hw/virtio/virtio-pci.c | 64 +++++++++++++-------------- include/hw/pci/msi.h | 4 +- include/hw/pci/msix.h | 5 ++- 20 files changed, 264 insertions(+), 145 deletions(-) -- 2.1.0