From: Liu Ping Fan <pingf...@linux.vnet.ibm.com> With this, e1000 show to memory core that it can be protected by refcnt.
Signed-off-by: Liu Ping Fan <pingf...@linux.vnet.ibm.com> --- hw/e1000.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/hw/e1000.c b/hw/e1000.c index ae8a6c5..df3a349 100644 --- a/hw/e1000.c +++ b/hw/e1000.c @@ -1037,9 +1037,26 @@ e1000_mmio_read(void *opaque, target_phys_addr_t addr, unsigned size) return 0; } +static int e1000_mmio_ref(MemoryRegion *mr) +{ + E1000State *e1000 = container_of(mr, E1000State, mmio); + + object_ref(OBJECT(e1000)); + return 1; +} + +static void e1000_mmio_unref(MemoryRegion *mr) +{ + E1000State *e1000 = container_of(mr, E1000State, mmio); + + object_unref(OBJECT(e1000)); +} + static const MemoryRegionOps e1000_mmio_ops = { .read = e1000_mmio_read, .write = e1000_mmio_write, + .ref = e1000_mmio_ref, + .unref = e1000_mmio_unref, .endianness = DEVICE_LITTLE_ENDIAN, .impl = { .min_access_size = 4, -- 1.7.4.4