vhost-scsi: adjust vhost_scsi_get_desc() to log vring descriptors

Adjust vhost_scsi_get_desc() to facilitate logging of vring descriptors.

Add new arguments to allow passing the log buffer and length to
vhost_get_vq_desc().

In addition, reset 'log_num' since vhost_get_vq_desc() may reset it only
after certain condition checks.

Suggested-by: Joao Martins <joao.m.martins@oracle.com>
Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Message-Id: <20250403063028.16045-6-dongli.zhang@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Dongli Zhang 2025-04-02 23:29:50 -07:00 committed by Michael S. Tsirkin
parent 41cff026cf
commit e5e6b15b0d

View File

@ -1063,13 +1063,17 @@ vhost_scsi_send_bad_target(struct vhost_scsi *vs,
static int
vhost_scsi_get_desc(struct vhost_scsi *vs, struct vhost_virtqueue *vq,
struct vhost_scsi_ctx *vc)
struct vhost_scsi_ctx *vc,
struct vhost_log *log, unsigned int *log_num)
{
int ret = -ENXIO;
if (likely(log_num))
*log_num = 0;
vc->head = vhost_get_vq_desc(vq, vq->iov,
ARRAY_SIZE(vq->iov), &vc->out, &vc->in,
NULL, NULL);
log, log_num);
pr_debug("vhost_get_vq_desc: head: %d, out: %u in: %u\n",
vc->head, vc->out, vc->in);
@ -1237,7 +1241,7 @@ vhost_scsi_handle_vq(struct vhost_scsi *vs, struct vhost_virtqueue *vq)
vhost_disable_notify(&vs->dev, vq);
do {
ret = vhost_scsi_get_desc(vs, vq, &vc);
ret = vhost_scsi_get_desc(vs, vq, &vc, NULL, NULL);
if (ret)
goto err;
@ -1581,7 +1585,7 @@ vhost_scsi_ctl_handle_vq(struct vhost_scsi *vs, struct vhost_virtqueue *vq)
vhost_disable_notify(&vs->dev, vq);
do {
ret = vhost_scsi_get_desc(vs, vq, &vc);
ret = vhost_scsi_get_desc(vs, vq, &vc, NULL, NULL);
if (ret)
goto err;