On 08/06/2015 18:25, Michael S. Tsirkin wrote:
> > issue is that we have to re-reserve HVA region first so no other allocation
> > would claim gap and the only way I found was just to call mmap() on it
> > which as side effect invalidates MemoryRegion's backing RAM.
> 
> Well the only point we need to mmap is where we'd unmap
> normally, if that's not safe then unmapping wouldn't
> be safe either?

I think it is it possible to map slot 2 at address 0x12340000 right
after unmapping slot 1 at the same address but before an RCU grace
period has expired.

If this is possible, then you can have two DIMMs trying to mmap
themselves at the same address.

Probably you need to stop using object_child_foreach in
hw/mem/pc-dimm.c, and instead build your own list.  An object can keep a
"weak" reference to itself in the list, and remove itself from the list
at instance_finalize time.

Paolo

Reply via email to