This can avoid the DMA to MMIO issue here: https://bugs.launchpad.net/qemu/+bug/1886362 Signed-off-by: Li Qiang <liq...@163.com> --- hw/net/e1000e.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c index fda34518c9..0aac5cea2e 100644 --- a/hw/net/e1000e.c +++ b/hw/net/e1000e.c @@ -439,8 +439,8 @@ static void e1000e_pci_realize(PCIDevice *pci_dev, Error **errp) s->subsys_used = s->subsys; /* Define IO/MMIO regions */ - memory_region_init_io(&s->mmio, OBJECT(s), &mmio_ops, s, - "e1000e-mmio", E1000E_MMIO_SIZE); + memory_region_init_io_with_dev(&s->mmio, OBJECT(s), &mmio_ops, s, + "e1000e-mmio", E1000E_MMIO_SIZE, &pci_dev->qdev); pci_register_bar(pci_dev, E1000E_MMIO_IDX, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio); @@ -453,8 +453,8 @@ static void e1000e_pci_realize(PCIDevice *pci_dev, Error **errp) pci_register_bar(pci_dev, E1000E_FLASH_IDX, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->flash); - memory_region_init_io(&s->io, OBJECT(s), &io_ops, s, - "e1000e-io", E1000E_IO_SIZE); + memory_region_init_io_with_dev(&s->io, OBJECT(s), &io_ops, s, + "e1000e-io", E1000E_IO_SIZE, &pci_dev->qdev); pci_register_bar(pci_dev, E1000E_IO_IDX, PCI_BASE_ADDRESS_SPACE_IO, &s->io); -- 2.17.1