qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset
@ 2012-05-10 18:22 Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 1/5] msi: Guard msi_reset with msi_present Jan Kiszka
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 18:22 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Isaku Yamahata, Gerd Hoffmann, qemu-devel, Alexander Graf

These patches had been sent before. I now rebased them and reduced them
to a set that has a value independent of the ongoing MSI rework for KVM
integration.

I'm not yet sure if patch 1&2 should be considered for 1.1 as they
implicitly fix the missing msi_reset for intel-hda and ahci. An
alternative could be to add those reset calls the classic way and leave
the refactoring for post-1.1. Maybe Gerd and Alex can comment on this.

CC: Alexander Graf <agraf@suse.de>
CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Isaku Yamahata <yamahata@valinux.co.jp>

Jan Kiszka (5):
  msi: Guard msi_reset with msi_present
  msi: Invoke msi/msix_reset from PCI core
  msi: Guard msi/msix_write_config with msi_present
  msi: Invoke msi/msix_write_config from PCI core
  msi: Use msi/msix_present more consistently

 hw/ide/ich.c            |    8 --------
 hw/intel-hda.c          |   12 ------------
 hw/ioh3420.c            |    3 +--
 hw/msi.c                |   11 ++++++++---
 hw/msix.c               |   15 +++++++++------
 hw/pci.c                |    8 ++++++++
 hw/pci_bridge.c         |    4 ++++
 hw/virtio-pci.c         |    3 ---
 hw/xio3130_downstream.c |    3 +--
 hw/xio3130_upstream.c   |    3 +--
 10 files changed, 32 insertions(+), 38 deletions(-)

-- 
1.7.3.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH 1/5] msi: Guard msi_reset with msi_present
  2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
@ 2012-05-10 18:22 ` Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 2/5] msi: Invoke msi/msix_reset from PCI core Jan Kiszka
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 18:22 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: qemu-devel

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/msi.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/hw/msi.c b/hw/msi.c
index 5d6ceb6..b2903fc 100644
--- a/hw/msi.c
+++ b/hw/msi.c
@@ -191,6 +191,10 @@ void msi_reset(PCIDevice *dev)
     uint16_t flags;
     bool msi64bit;
 
+    if (!msi_present(dev)) {
+        return;
+    }
+
     flags = pci_get_word(dev->config + msi_flags_off(dev));
     flags &= ~(PCI_MSI_FLAGS_QSIZE | PCI_MSI_FLAGS_ENABLE);
     msi64bit = flags & PCI_MSI_FLAGS_64BIT;
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH 2/5] msi: Invoke msi/msix_reset from PCI core
  2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 1/5] msi: Guard msi_reset with msi_present Jan Kiszka
@ 2012-05-10 18:22 ` Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 3/5] msi: Guard msi/msix_write_config with msi_present Jan Kiszka
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 18:22 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Isaku Yamahata, Gerd Hoffmann, qemu-devel, Alexander Graf

There is no point in pushing this burden to the devices, they may rather
forget to call them (like intel-hda and ahci ATM). Instead, reset
functions are now called from pci_device_reset and pci_bridge_reset.
They do nothing if MSI/MSI-X is not in use.

CC: Alexander Graf <agraf@suse.de>
CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/ioh3420.c            |    2 +-
 hw/pci.c                |    5 +++++
 hw/pci_bridge.c         |    4 ++++
 hw/virtio-pci.c         |    1 -
 hw/xio3130_downstream.c |    2 +-
 hw/xio3130_upstream.c   |    2 +-
 6 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/hw/ioh3420.c b/hw/ioh3420.c
index 1632d31..d1499da 100644
--- a/hw/ioh3420.c
+++ b/hw/ioh3420.c
@@ -81,7 +81,7 @@ static void ioh3420_write_config(PCIDevice *d,
 static void ioh3420_reset(DeviceState *qdev)
 {
     PCIDevice *d = PCI_DEVICE(qdev);
-    msi_reset(d);
+
     ioh3420_aer_vector_update(d);
     pcie_cap_root_reset(d);
     pcie_cap_deverr_reset(d);
diff --git a/hw/pci.c b/hw/pci.c
index b706e69..2148245 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -31,6 +31,8 @@
 #include "loader.h"
 #include "range.h"
 #include "qmp-commands.h"
+#include "msi.h"
+#include "msix.h"
 
 //#define DEBUG_PCI
 #ifdef DEBUG_PCI
@@ -188,6 +190,9 @@ void pci_device_reset(PCIDevice *dev)
         }
     }
     pci_update_mappings(dev);
+
+    msi_reset(dev);
+    msix_reset(dev);
 }
 
 /*
diff --git a/hw/pci_bridge.c b/hw/pci_bridge.c
index 866f0b6..b533574 100644
--- a/hw/pci_bridge.c
+++ b/hw/pci_bridge.c
@@ -32,6 +32,8 @@
 #include "pci_bridge.h"
 #include "pci_internals.h"
 #include "range.h"
+#include "msi.h"
+#include "msix.h"
 
 /* PCI bridge subsystem vendor ID helper functions */
 #define PCI_SSVID_SIZEOF        8
@@ -296,6 +298,8 @@ void pci_bridge_reset(DeviceState *qdev)
 {
     PCIDevice *dev = PCI_DEVICE(qdev);
     pci_bridge_reset_reg(dev);
+    msi_reset(dev);
+    msix_reset(dev);
 }
 
 /* default qdev initialization function for PCI-to-PCI bridge */
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index 4a4413d..3395a02 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -277,7 +277,6 @@ void virtio_pci_reset(DeviceState *d)
     VirtIOPCIProxy *proxy = container_of(d, VirtIOPCIProxy, pci_dev.qdev);
     virtio_pci_stop_ioeventfd(proxy);
     virtio_reset(proxy->vdev);
-    msix_reset(&proxy->pci_dev);
     proxy->flags &= ~VIRTIO_PCI_FLAG_BUS_MASTER_BUG;
 }
 
diff --git a/hw/xio3130_downstream.c b/hw/xio3130_downstream.c
index 319624f..3716e45 100644
--- a/hw/xio3130_downstream.c
+++ b/hw/xio3130_downstream.c
@@ -48,7 +48,7 @@ static void xio3130_downstream_write_config(PCIDevice *d, uint32_t address,
 static void xio3130_downstream_reset(DeviceState *qdev)
 {
     PCIDevice *d = PCI_DEVICE(qdev);
-    msi_reset(d);
+
     pcie_cap_deverr_reset(d);
     pcie_cap_slot_reset(d);
     pcie_cap_ari_reset(d);
diff --git a/hw/xio3130_upstream.c b/hw/xio3130_upstream.c
index 34a99bb..962d48e 100644
--- a/hw/xio3130_upstream.c
+++ b/hw/xio3130_upstream.c
@@ -47,7 +47,7 @@ static void xio3130_upstream_write_config(PCIDevice *d, uint32_t address,
 static void xio3130_upstream_reset(DeviceState *qdev)
 {
     PCIDevice *d = PCI_DEVICE(qdev);
-    msi_reset(d);
+
     pci_bridge_reset(qdev);
     pcie_cap_deverr_reset(d);
 }
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH 3/5] msi: Guard msi/msix_write_config with msi_present
  2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 1/5] msi: Guard msi_reset with msi_present Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 2/5] msi: Invoke msi/msix_reset from PCI core Jan Kiszka
@ 2012-05-10 18:22 ` Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 4/5] msi: Invoke msi/msix_write_config from PCI core Jan Kiszka
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 18:22 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: qemu-devel

Terminate msi/msix_write_config early if support is not enabled. This
allows to remove checks at the caller site if MSI is optional.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/msi.c  |    3 ++-
 hw/msix.c |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/hw/msi.c b/hw/msi.c
index b2903fc..da12f33 100644
--- a/hw/msi.c
+++ b/hw/msi.c
@@ -276,7 +276,8 @@ void msi_write_config(PCIDevice *dev, uint32_t addr, uint32_t val, int len)
     unsigned int vector;
     uint32_t pending;
 
-    if (!ranges_overlap(addr, len, dev->msi_cap, msi_cap_sizeof(flags))) {
+    if (!msi_present(dev) ||
+        !ranges_overlap(addr, len, dev->msi_cap, msi_cap_sizeof(flags))) {
         return;
     }
 
diff --git a/hw/msix.c b/hw/msix.c
index 3835eaa..84915d8 100644
--- a/hw/msix.c
+++ b/hw/msix.c
@@ -157,7 +157,7 @@ void msix_write_config(PCIDevice *dev, uint32_t addr,
     int vector;
     bool was_masked;
 
-    if (!range_covers_byte(addr, len, enable_pos)) {
+    if (!msix_present(dev) || !range_covers_byte(addr, len, enable_pos)) {
         return;
     }
 
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH 4/5] msi: Invoke msi/msix_write_config from PCI core
  2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
                   ` (2 preceding siblings ...)
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 3/5] msi: Guard msi/msix_write_config with msi_present Jan Kiszka
@ 2012-05-10 18:22 ` Jan Kiszka
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 5/5] msi: Use msi/msix_present more consistently Jan Kiszka
  2012-05-10 18:58 ` [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Michael S. Tsirkin
  5 siblings, 0 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 18:22 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Isaku Yamahata, Gerd Hoffmann, qemu-devel, Alexander Graf

Also this functions is better invoked by the core than by each and every
device. This allows to drop the config_write callbacks from ich and
intel-hda.

CC: Alexander Graf <agraf@suse.de>
CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/ide/ich.c            |    8 --------
 hw/intel-hda.c          |   12 ------------
 hw/ioh3420.c            |    1 -
 hw/msi.c                |    2 +-
 hw/pci.c                |    3 +++
 hw/virtio-pci.c         |    2 --
 hw/xio3130_downstream.c |    1 -
 hw/xio3130_upstream.c   |    1 -
 8 files changed, 4 insertions(+), 26 deletions(-)

diff --git a/hw/ide/ich.c b/hw/ide/ich.c
index 560ae37..2022fa1 100644
--- a/hw/ide/ich.c
+++ b/hw/ide/ich.c
@@ -139,13 +139,6 @@ static int pci_ich9_uninit(PCIDevice *dev)
     return 0;
 }
 
-static void pci_ich9_write_config(PCIDevice *pci, uint32_t addr,
-                                  uint32_t val, int len)
-{
-    pci_default_write_config(pci, addr, val, len);
-    msi_write_config(pci, addr, val, len);
-}
-
 static void ich_ahci_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
@@ -153,7 +146,6 @@ static void ich_ahci_class_init(ObjectClass *klass, void *data)
 
     k->init = pci_ich9_ahci_init;
     k->exit = pci_ich9_uninit;
-    k->config_write = pci_ich9_write_config;
     k->vendor_id = PCI_VENDOR_ID_INTEL;
     k->device_id = PCI_DEVICE_ID_INTEL_82801IR;
     k->revision = 0x02;
diff --git a/hw/intel-hda.c b/hw/intel-hda.c
index bb11af2..8f3b70b 100644
--- a/hw/intel-hda.c
+++ b/hw/intel-hda.c
@@ -1153,17 +1153,6 @@ static int intel_hda_exit(PCIDevice *pci)
     return 0;
 }
 
-static void intel_hda_write_config(PCIDevice *pci, uint32_t addr,
-                                   uint32_t val, int len)
-{
-    IntelHDAState *d = DO_UPCAST(IntelHDAState, pci, pci);
-
-    pci_default_write_config(pci, addr, val, len);
-    if (d->msi) {
-        msi_write_config(pci, addr, val, len);
-    }
-}
-
 static int intel_hda_post_load(void *opaque, int version)
 {
     IntelHDAState* d = opaque;
@@ -1252,7 +1241,6 @@ static void intel_hda_class_init(ObjectClass *klass, void *data)
 
     k->init = intel_hda_init;
     k->exit = intel_hda_exit;
-    k->config_write = intel_hda_write_config;
     k->vendor_id = PCI_VENDOR_ID_INTEL;
     k->device_id = 0x2668;
     k->revision = 1;
diff --git a/hw/ioh3420.c b/hw/ioh3420.c
index d1499da..0a2601c 100644
--- a/hw/ioh3420.c
+++ b/hw/ioh3420.c
@@ -71,7 +71,6 @@ static void ioh3420_write_config(PCIDevice *d,
         pci_get_long(d->config + d->exp.aer_cap + PCI_ERR_ROOT_COMMAND);
 
     pci_bridge_write_config(d, address, val, len);
-    msi_write_config(d, address, val, len);
     ioh3420_aer_vector_update(d);
     pcie_cap_slot_write_config(d, address, val, len);
     pcie_aer_write_config(d, address, val, len);
diff --git a/hw/msi.c b/hw/msi.c
index da12f33..556c7c4 100644
--- a/hw/msi.c
+++ b/hw/msi.c
@@ -264,7 +264,7 @@ void msi_notify(PCIDevice *dev, unsigned int vector)
     stl_le_phys(address, data);
 }
 
-/* call this function after updating configs by pci_default_write_config(). */
+/* Normally called by pci_default_write_config(). */
 void msi_write_config(PCIDevice *dev, uint32_t addr, uint32_t val, int len)
 {
     uint16_t flags = pci_get_word(dev->config + msi_flags_off(dev));
diff --git a/hw/pci.c b/hw/pci.c
index 2148245..439f3ce 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1042,6 +1042,9 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int l)
 
     if (range_covers_byte(addr, l, PCI_COMMAND))
         pci_update_irq_disabled(d, was_irq_disabled);
+
+    msi_write_config(d, addr, val, l);
+    msix_write_config(d, addr, val, l);
 }
 
 /***********************************************************/
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index 3395a02..985acfc 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -519,8 +519,6 @@ static void virtio_write_config(PCIDevice *pci_dev, uint32_t address,
         virtio_set_status(proxy->vdev,
                           proxy->vdev->status & ~VIRTIO_CONFIG_S_DRIVER_OK);
     }
-
-    msix_write_config(pci_dev, address, val, len);
 }
 
 static unsigned virtio_pci_get_features(void *opaque)
diff --git a/hw/xio3130_downstream.c b/hw/xio3130_downstream.c
index 3716e45..56d1b35 100644
--- a/hw/xio3130_downstream.c
+++ b/hw/xio3130_downstream.c
@@ -41,7 +41,6 @@ static void xio3130_downstream_write_config(PCIDevice *d, uint32_t address,
     pci_bridge_write_config(d, address, val, len);
     pcie_cap_flr_write_config(d, address, val, len);
     pcie_cap_slot_write_config(d, address, val, len);
-    msi_write_config(d, address, val, len);
     pcie_aer_write_config(d, address, val, len);
 }
 
diff --git a/hw/xio3130_upstream.c b/hw/xio3130_upstream.c
index 962d48e..7972581 100644
--- a/hw/xio3130_upstream.c
+++ b/hw/xio3130_upstream.c
@@ -40,7 +40,6 @@ static void xio3130_upstream_write_config(PCIDevice *d, uint32_t address,
 {
     pci_bridge_write_config(d, address, val, len);
     pcie_cap_flr_write_config(d, address, val, len);
-    msi_write_config(d, address, val, len);
     pcie_aer_write_config(d, address, val, len);
 }
 
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH 5/5] msi: Use msi/msix_present more consistently
  2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
                   ` (3 preceding siblings ...)
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 4/5] msi: Invoke msi/msix_write_config from PCI core Jan Kiszka
@ 2012-05-10 18:22 ` Jan Kiszka
  2012-05-10 18:58 ` [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Michael S. Tsirkin
  5 siblings, 0 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 18:22 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: qemu-devel

Replace some open-coded msi/msix_present checks.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/msi.c  |    2 +-
 hw/msix.c |   13 ++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/hw/msi.c b/hw/msi.c
index 556c7c4..5233204 100644
--- a/hw/msi.c
+++ b/hw/msi.c
@@ -175,7 +175,7 @@ void msi_uninit(struct PCIDevice *dev)
     uint16_t flags;
     uint8_t cap_size;
 
-    if (!(dev->cap_present & QEMU_PCI_CAP_MSI)) {
+    if (!msi_present(dev)) {
         return;
     }
     flags = pci_get_word(dev->config + msi_flags_off(dev));
diff --git a/hw/msix.c b/hw/msix.c
index 84915d8..7c314bb 100644
--- a/hw/msix.c
+++ b/hw/msix.c
@@ -285,8 +285,9 @@ static void msix_free_irq_entries(PCIDevice *dev)
 /* Clean up resources for the device. */
 int msix_uninit(PCIDevice *dev, MemoryRegion *bar)
 {
-    if (!(dev->cap_present & QEMU_PCI_CAP_MSIX))
+    if (!msix_present(dev)) {
         return 0;
+    }
     pci_del_capability(dev, PCI_CAP_ID_MSIX, MSIX_CAP_LENGTH);
     dev->msix_cap = 0;
     msix_free_irq_entries(dev);
@@ -305,7 +306,7 @@ void msix_save(PCIDevice *dev, QEMUFile *f)
 {
     unsigned n = dev->msix_entries_nr;
 
-    if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) {
+    if (!msix_present(dev)) {
         return;
     }
 
@@ -318,7 +319,7 @@ void msix_load(PCIDevice *dev, QEMUFile *f)
 {
     unsigned n = dev->msix_entries_nr;
 
-    if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) {
+    if (!msix_present(dev)) {
         return;
     }
 
@@ -370,8 +371,9 @@ void msix_notify(PCIDevice *dev, unsigned vector)
 
 void msix_reset(PCIDevice *dev)
 {
-    if (!(dev->cap_present & QEMU_PCI_CAP_MSIX))
+    if (!msix_present(dev)) {
         return;
+    }
     msix_free_irq_entries(dev);
     dev->config[dev->msix_cap + MSIX_CONTROL_OFFSET] &=
 	    ~dev->wmask[dev->msix_cap + MSIX_CONTROL_OFFSET];
@@ -410,7 +412,8 @@ void msix_vector_unuse(PCIDevice *dev, unsigned vector)
 
 void msix_unuse_all_vectors(PCIDevice *dev)
 {
-    if (!(dev->cap_present & QEMU_PCI_CAP_MSIX))
+    if (!msix_present(dev)) {
         return;
+    }
     msix_free_irq_entries(dev);
 }
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset
  2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
                   ` (4 preceding siblings ...)
  2012-05-10 18:22 ` [Qemu-devel] [PATCH 5/5] msi: Use msi/msix_present more consistently Jan Kiszka
@ 2012-05-10 18:58 ` Michael S. Tsirkin
  2012-05-10 19:16   ` Jan Kiszka
  5 siblings, 1 reply; 8+ messages in thread
From: Michael S. Tsirkin @ 2012-05-10 18:58 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Isaku Yamahata, Gerd Hoffmann, qemu-devel, Alexander Graf

On Thu, May 10, 2012 at 03:22:11PM -0300, Jan Kiszka wrote:
> These patches had been sent before. I now rebased them and reduced them
> to a set that has a value independent of the ongoing MSI rework for KVM
> integration.
> 
> I'm not yet sure if patch 1&2 should be considered for 1.1 as they
> implicitly fix the missing msi_reset for intel-hda and ahci. An
> alternative could be to add those reset calls the classic way and leave
> the refactoring for post-1.1. Maybe Gerd and Alex can comment on this.

I'd prefer that for 1.1, core changes are an unnecessary risk for 1.1.

> CC: Alexander Graf <agraf@suse.de>
> CC: Gerd Hoffmann <kraxel@redhat.com>
> CC: Isaku Yamahata <yamahata@valinux.co.jp>
> 
> Jan Kiszka (5):
>   msi: Guard msi_reset with msi_present
>   msi: Invoke msi/msix_reset from PCI core
>   msi: Guard msi/msix_write_config with msi_present
>   msi: Invoke msi/msix_write_config from PCI core
>   msi: Use msi/msix_present more consistently
> 
>  hw/ide/ich.c            |    8 --------
>  hw/intel-hda.c          |   12 ------------
>  hw/ioh3420.c            |    3 +--
>  hw/msi.c                |   11 ++++++++---
>  hw/msix.c               |   15 +++++++++------
>  hw/pci.c                |    8 ++++++++
>  hw/pci_bridge.c         |    4 ++++
>  hw/virtio-pci.c         |    3 ---
>  hw/xio3130_downstream.c |    3 +--
>  hw/xio3130_upstream.c   |    3 +--
>  10 files changed, 32 insertions(+), 38 deletions(-)
> 
> -- 
> 1.7.3.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset
  2012-05-10 18:58 ` [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Michael S. Tsirkin
@ 2012-05-10 19:16   ` Jan Kiszka
  0 siblings, 0 replies; 8+ messages in thread
From: Jan Kiszka @ 2012-05-10 19:16 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Isaku Yamahata, Gerd Hoffmann, qemu-devel, Alexander Graf

On 2012-05-10 15:58, Michael S. Tsirkin wrote:
> On Thu, May 10, 2012 at 03:22:11PM -0300, Jan Kiszka wrote:
>> These patches had been sent before. I now rebased them and reduced them
>> to a set that has a value independent of the ongoing MSI rework for KVM
>> integration.
>>
>> I'm not yet sure if patch 1&2 should be considered for 1.1 as they
>> implicitly fix the missing msi_reset for intel-hda and ahci. An
>> alternative could be to add those reset calls the classic way and leave
>> the refactoring for post-1.1. Maybe Gerd and Alex can comment on this.
> 
> I'd prefer that for 1.1, core changes are an unnecessary risk for 1.1.

OK, I will fix this first and base the rest of this series on top. Then
we can pull the fixes into 1.1 and stable. XHCI is broken as well, BTW.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-05-10 19:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-10 18:22 [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Jan Kiszka
2012-05-10 18:22 ` [Qemu-devel] [PATCH 1/5] msi: Guard msi_reset with msi_present Jan Kiszka
2012-05-10 18:22 ` [Qemu-devel] [PATCH 2/5] msi: Invoke msi/msix_reset from PCI core Jan Kiszka
2012-05-10 18:22 ` [Qemu-devel] [PATCH 3/5] msi: Guard msi/msix_write_config with msi_present Jan Kiszka
2012-05-10 18:22 ` [Qemu-devel] [PATCH 4/5] msi: Invoke msi/msix_write_config from PCI core Jan Kiszka
2012-05-10 18:22 ` [Qemu-devel] [PATCH 5/5] msi: Use msi/msix_present more consistently Jan Kiszka
2012-05-10 18:58 ` [Qemu-devel] [PATCH 0/5] msi: Refactorings and reset Michael S. Tsirkin
2012-05-10 19:16   ` Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).