aboutsummaryrefslogtreecommitdiff
path: root/hw/pci/msi.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/pci/msi.c')
-rw-r--r--hw/pci/msi.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/hw/pci/msi.c b/hw/pci/msi.c
index 2949938223..c111dbaff6 100644
--- a/hw/pci/msi.c
+++ b/hw/pci/msi.c
@@ -291,8 +291,16 @@ void msi_notify(PCIDevice *dev, unsigned int vector)
"notify vector 0x%x"
" address: 0x%"PRIx64" data: 0x%"PRIx32"\n",
vector, msg.address, msg.data);
+ msi_send_message(dev, msg);
+}
+
+void msi_send_message(PCIDevice *dev, MSIMessage msg)
+{
+ MemTxAttrs attrs = {};
+
+ attrs.stream_id = (pci_bus_num(dev->bus) << 8) | dev->devfn;
address_space_stl_le(&dev->bus_master_as, msg.address, msg.data,
- MEMTXATTRS_UNSPECIFIED, NULL);
+ attrs, NULL);
}
/* Normally called by pci_default_write_config(). */