Ping.

About cleanup:
1. When realize()/init() fail, PCI device will free the config space memory, so the necessary cleanup I can find until now is: MemoryRegion object. Maybe I missed something to cleanup, hope for comments.

2. certain instance: move the msi/msxi init func to the beginning of the realize()/init() func, to avoid cleanup work.

@Markus: hope I didn`t miss anything you mentioned in last review;)

On 12/15/2015 06:43 PM, Cao jin wrote:
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(-)


--
Yours Sincerely,

Cao Jin



Reply via email to