mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-30 13:53:54 -06:00
libvhost-user: Factor out vq usability check
Let's factor it out to prepare for further changes. Reviewed-by: Raphael Norwitz <raphael@enfabrica.net> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20240214151701.29906-13-david@redhat.com> Tested-by: Mario Casquero <mcasquer@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
b2b63008b3
commit
2a29022768
1 changed files with 12 additions and 12 deletions
|
@ -283,6 +283,12 @@ vu_remove_all_mem_regs(VuDev *dev)
|
||||||
dev->nregions = 0;
|
dev->nregions = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
vu_is_vq_usable(VuDev *dev, VuVirtq *vq)
|
||||||
|
{
|
||||||
|
return likely(!dev->broken) && likely(vq->vring.avail);
|
||||||
|
}
|
||||||
|
|
||||||
static size_t
|
static size_t
|
||||||
get_fd_hugepagesize(int fd)
|
get_fd_hugepagesize(int fd)
|
||||||
{
|
{
|
||||||
|
@ -2380,8 +2386,7 @@ vu_queue_get_avail_bytes(VuDev *dev, VuVirtq *vq, unsigned int *in_bytes,
|
||||||
idx = vq->last_avail_idx;
|
idx = vq->last_avail_idx;
|
||||||
|
|
||||||
total_bufs = in_total = out_total = 0;
|
total_bufs = in_total = out_total = 0;
|
||||||
if (unlikely(dev->broken) ||
|
if (!vu_is_vq_usable(dev, vq)) {
|
||||||
unlikely(!vq->vring.avail)) {
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2496,8 +2501,7 @@ vu_queue_avail_bytes(VuDev *dev, VuVirtq *vq, unsigned int in_bytes,
|
||||||
bool
|
bool
|
||||||
vu_queue_empty(VuDev *dev, VuVirtq *vq)
|
vu_queue_empty(VuDev *dev, VuVirtq *vq)
|
||||||
{
|
{
|
||||||
if (unlikely(dev->broken) ||
|
if (!vu_is_vq_usable(dev, vq)) {
|
||||||
unlikely(!vq->vring.avail)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2536,8 +2540,7 @@ vring_notify(VuDev *dev, VuVirtq *vq)
|
||||||
|
|
||||||
static void _vu_queue_notify(VuDev *dev, VuVirtq *vq, bool sync)
|
static void _vu_queue_notify(VuDev *dev, VuVirtq *vq, bool sync)
|
||||||
{
|
{
|
||||||
if (unlikely(dev->broken) ||
|
if (!vu_is_vq_usable(dev, vq)) {
|
||||||
unlikely(!vq->vring.avail)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2862,8 +2865,7 @@ vu_queue_pop(VuDev *dev, VuVirtq *vq, size_t sz)
|
||||||
unsigned int head;
|
unsigned int head;
|
||||||
VuVirtqElement *elem;
|
VuVirtqElement *elem;
|
||||||
|
|
||||||
if (unlikely(dev->broken) ||
|
if (!vu_is_vq_usable(dev, vq)) {
|
||||||
unlikely(!vq->vring.avail)) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3020,8 +3022,7 @@ vu_queue_fill(VuDev *dev, VuVirtq *vq,
|
||||||
{
|
{
|
||||||
struct vring_used_elem uelem;
|
struct vring_used_elem uelem;
|
||||||
|
|
||||||
if (unlikely(dev->broken) ||
|
if (!vu_is_vq_usable(dev, vq)) {
|
||||||
unlikely(!vq->vring.avail)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3050,8 +3051,7 @@ vu_queue_flush(VuDev *dev, VuVirtq *vq, unsigned int count)
|
||||||
{
|
{
|
||||||
uint16_t old, new;
|
uint16_t old, new;
|
||||||
|
|
||||||
if (unlikely(dev->broken) ||
|
if (!vu_is_vq_usable(dev, vq)) {
|
||||||
unlikely(!vq->vring.avail)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue