qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 09/11] virtio: add MemoryListener to cache ring


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 09/11] virtio: add MemoryListener to cache ring translations
Date: Mon, 12 Dec 2016 14:24:22 +0000
User-agent: Mutt/1.7.1 (2016-10-04)

On Mon, Dec 12, 2016 at 12:18:55PM +0100, Paolo Bonzini wrote:
> @@ -103,6 +111,46 @@ struct VirtQueue
>      QLIST_ENTRY(VirtQueue) node;
>  };
>  
> +static void virtio_free_region_cache(VRingMemoryRegionCaches *caches)
> +{
> +    address_space_cache_destroy(&caches->desc);
> +    address_space_cache_destroy(&caches->avail);
> +    address_space_cache_destroy(&caches->used);
> +    g_free(caches);
> +}
> +
> +static void virtio_init_region_cache(VirtIODevice *vdev, int i)

s/int i/int n/ - it seems to be the convention for virtqueue numbers.

> +{
> +    VirtQueue *vq = &vdev->vq[i];
> +    VRingMemoryRegionCaches *old = vq->vring.caches;
> +    VRingMemoryRegionCaches *new = g_new0(VRingMemoryRegionCaches, 1);
> +    hwaddr addr, size;
> +    int event_size;
> +
> +    event_size = virtio_vdev_has_feature(vq->vdev, VIRTIO_RING_F_EVENT_IDX) 
> ? 2 : 0;
> +
> +    addr = vq->vring.desc;
> +    if (!addr) {
> +        return;
> +    }
> +    size = virtio_queue_get_desc_size(vdev, i);
> +    address_space_cache_init(&new->desc, &address_space_memory,
> +                             addr, size, false);

Missing error handling in case address_space_cache_init() fails.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]