On Thu, Sep 24, 2020 at 06:04:18PM +0200, David Hildenbrand wrote:
> +static inline void memory_region_set_sparse_ram_handler(MemoryRegion *mr,
> + SparseRAMHandler
> *srh)
> +{
> + g_assert(memory_region_is_ram(mr));
Nit: Maybe assert mr->srh==NULL here? If sparse ram handler is exclusive,
which afaiu, is a yes.
> + mr->srh = srh;
> +}
> +
> +static inline void memory_region_register_sparse_ram_notifier(MemoryRegion
> *mr,
> + SparseRAMNotifier
> *n)
> +{
> + SparseRAMHandler *srh = memory_region_get_sparse_ram_handler(mr);
> + SparseRAMHandlerClass *srhc = SPARSE_RAM_HANDLER_GET_CLASS(srh);
> +
> + srhc->register_listener(srh, mr, n);
I feel like you need to check srhc!=NULL first or vfio may start crash without
virtio-mem... Same question to the other ones (at least unregister).
--
Peter Xu