mirror of https://github.com/xemu-project/xemu.git
vhost: allocate event_idx fields on vring
There was not enough room to accomodate them. Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
7d0e12af59
commit
f0c48e05bd
|
@ -570,16 +570,16 @@ void vhost_svq_get_vring_addr(const VhostShadowVirtqueue *svq,
|
||||||
size_t vhost_svq_driver_area_size(const VhostShadowVirtqueue *svq)
|
size_t vhost_svq_driver_area_size(const VhostShadowVirtqueue *svq)
|
||||||
{
|
{
|
||||||
size_t desc_size = sizeof(vring_desc_t) * svq->vring.num;
|
size_t desc_size = sizeof(vring_desc_t) * svq->vring.num;
|
||||||
size_t avail_size = offsetof(vring_avail_t, ring) +
|
size_t avail_size = offsetof(vring_avail_t, ring[svq->vring.num]) +
|
||||||
sizeof(uint16_t) * svq->vring.num;
|
sizeof(uint16_t);
|
||||||
|
|
||||||
return ROUND_UP(desc_size + avail_size, qemu_real_host_page_size());
|
return ROUND_UP(desc_size + avail_size, qemu_real_host_page_size());
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t vhost_svq_device_area_size(const VhostShadowVirtqueue *svq)
|
size_t vhost_svq_device_area_size(const VhostShadowVirtqueue *svq)
|
||||||
{
|
{
|
||||||
size_t used_size = offsetof(vring_used_t, ring) +
|
size_t used_size = offsetof(vring_used_t, ring[svq->vring.num]) +
|
||||||
sizeof(vring_used_elem_t) * svq->vring.num;
|
sizeof(uint16_t);
|
||||||
return ROUND_UP(used_size, qemu_real_host_page_size());
|
return ROUND_UP(used_size, qemu_real_host_page_size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue