| 1471 | } |
| 1472 | |
| 1473 | static bool |
| 1474 | vq_is_ready(struct virtio_net *dev, struct vhost_virtqueue *vq) |
| 1475 | { |
| 1476 | bool rings_ok; |
| 1477 | |
| 1478 | if (!vq) |
| 1479 | return false; |
| 1480 | |
| 1481 | if (vq_is_packed(dev)) |
| 1482 | rings_ok = vq->desc_packed && vq->driver_event && |
| 1483 | vq->device_event; |
| 1484 | else |
| 1485 | rings_ok = vq->desc && vq->avail && vq->used; |
| 1486 | |
| 1487 | return rings_ok && |
| 1488 | vq->kickfd != VIRTIO_UNINITIALIZED_EVENTFD && |
| 1489 | vq->callfd != VIRTIO_UNINITIALIZED_EVENTFD && |
| 1490 | vq->enabled; |
| 1491 | } |
| 1492 | |
| 1493 | #define VIRTIO_BUILTIN_NUM_VQS_TO_BE_READY 2u |
| 1494 | #define VIRTIO_BLK_NUM_VQS_TO_BE_READY 1u |
no test coverage detected