* [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).