On Tue, 17 Sept 2024 at 10:33, Stefan Hajnoczi <stefa...@redhat.com> wrote: > > On Thu, Sep 12, 2024 at 04:53:34PM +0200, Albert Esteve wrote: > > @@ -331,6 +333,37 @@ static void vub_device_realize(DeviceState *dev, Error > > **errp) > > do_vhost_user_cleanup(vdev, vub); > > } > > > > + ret = vub->vhost_dev.vhost_ops->vhost_get_shmem_config(&vub->vhost_dev, > > + &nregions, > > + memory_sizes, > > + errp); > > + > > + if (ret < 0) { > > + do_vhost_user_cleanup(vdev, vub); > > + } > > + > > + for (i = 0; i < nregions; i++) { > > + if (memory_sizes[i]) { > > + if (memory_sizes[i] % qemu_real_host_page_size() != 0) { > > + error_setg(errp, "Shared memory %d size must be a power of > > 2 " > > + "no smaller than the page size", i); > > + return; > > + } > > + > > + cache_ptr = mmap(NULL, memory_sizes[i], PROT_NONE, > > + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); > > + if (cache_ptr == MAP_FAILED) { > > + error_setg_errno(errp, errno, "Unable to mmap blank > > cache"); > > + return; > > + } > > + > > + virtio_new_shmem_region(vdev); > > + memory_region_init_ram_ptr(vdev->shmem_list[i].mr, > > I don't think this works because virtio_new_shmem_region() leaves .mr = > NULL? Why allocates the MemoryRegion and assigns it to shmem_list[i].mr?
"Why" -> "Who"