On 3 June 2013 11:12, Paolo Bonzini <pbonz...@redhat.com> wrote:
> 1) I could set the owner to NULL before calling the sysbus_init_mmio;
>
> 2) I could add a variant of sysbus_init_mmio that doesn't set the owner;
>
> 3) I could skip setting the owner for sysbus altogether, since it is
> only strictly required for unpluggable devices.

4) you could set the owner at the right place, ie when the
memory region is created.

> However, I think there is worth in preserving the chain through either
> containment or aliasing.  From the nesting point of view,
> realview_mpcore is exposing the region.  From the implementor point of
> view, arm_gic is implementing the region (and arm_gic is the one that
> would be ref/unref'd at execution time).  In either case,
> arm11mpcore_priv is not what you want to see.  Its presence is just an
> implementation detail of realview_mpcore.

I agree that the owner of the MR in this case should be
arm_gic. For aliasing, surely you need to actually reference
both devices? If the device that owns the container goes
away then your MR* is toast anyway, and if the device doing
the actual implementation goes away your MR* is also now
invalid. So they have to both hang around long enough for
you to finish whatever you were doing.

thanks
-- PMM

Reply via email to