A few patches to the MSI and MSI-X layer that clean up the interfaces and fix reset issues. They are from my MSI rework to prepare it for KVM's requirements (in-kernel irqchip).
In contrast to the previous version, this one moves msi[x]_reset, msi[x]_write_config and msi[x]_uninit into the PCI core, avoiding related bugs and reducing boilerplate code on device side. CC: Alexander Graf <ag...@suse.de> CC: Gerd Hoffmann <kra...@redhat.com> CC: Isaku Yamahata <yamah...@valinux.co.jp> Jan Kiszka (9): msi: Fix copy&paste mistake in msi_uninit msi: Guard msi/msix_write_config with msi_present msi: Guard msi_reset with msi_present msi: Use msi/msix_present more consistently msi: Invoke msi/msix_reset from PCI core msi: Invoke msi/msix_write_config from PCI core msi: Invoke msi/msix_uninit from PCI core msix: Align MSI-X constants to libpci definitions and extend them msi: Move PCI_MSI_PENDING_32/64 into pci_regs.h hw/ide/ich.c | 9 --------- hw/intel-hda.c | 13 ------------- hw/ioh3420.c | 8 ++------ hw/msi.c | 17 +++++++++-------- hw/msix.c | 39 ++++++++++++++++++++------------------- hw/pci.c | 10 ++++++++++ hw/pci_bridge.c | 4 ++++ hw/pci_regs.h | 16 ++++++++++------ hw/virtio-pci.c | 14 +++----------- hw/xio3130_downstream.c | 8 ++------ hw/xio3130_upstream.c | 7 +------ 11 files changed, 61 insertions(+), 84 deletions(-)