Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4614e51c authored by Rusty Russell's avatar Rusty Russell
Browse files

virtio: scsi: make it clear that virtqueue_add_buf() no longer returns > 0



We simplified virtqueue_add_buf(), make it clear in the callers.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 57e1a373
Loading
Loading
Loading
Loading
+13 −11
Original line number Diff line number Diff line
@@ -215,7 +215,7 @@ static void virtscsi_ctrl_done(struct virtqueue *vq)
static int virtscsi_kick_event(struct virtio_scsi *vscsi,
			       struct virtio_scsi_event_node *event_node)
{
	int ret;
	int err;
	struct scatterlist sg;
	unsigned long flags;

@@ -223,13 +223,14 @@ static int virtscsi_kick_event(struct virtio_scsi *vscsi,

	spin_lock_irqsave(&vscsi->event_vq.vq_lock, flags);

	ret = virtqueue_add_buf(vscsi->event_vq.vq, &sg, 0, 1, event_node, GFP_ATOMIC);
	if (ret >= 0)
	err = virtqueue_add_buf(vscsi->event_vq.vq, &sg, 0, 1, event_node,
				GFP_ATOMIC);
	if (!err)
		virtqueue_kick(vscsi->event_vq.vq);

	spin_unlock_irqrestore(&vscsi->event_vq.vq_lock, flags);

	return ret;
	return err;
}

static int virtscsi_kick_event_all(struct virtio_scsi *vscsi)
@@ -410,22 +411,23 @@ static int virtscsi_kick_cmd(struct virtio_scsi_target_state *tgt,
{
	unsigned int out_num, in_num;
	unsigned long flags;
	int ret;
	int err;
	bool needs_kick = false;

	spin_lock_irqsave(&tgt->tgt_lock, flags);
	virtscsi_map_cmd(tgt, cmd, &out_num, &in_num, req_size, resp_size);

	spin_lock(&vq->vq_lock);
	ret = virtqueue_add_buf(vq->vq, tgt->sg, out_num, in_num, cmd, gfp);
	err = virtqueue_add_buf(vq->vq, tgt->sg, out_num, in_num, cmd, gfp);
	spin_unlock(&tgt->tgt_lock);
	if (ret >= 0)
		ret = virtqueue_kick_prepare(vq->vq);
	if (!err)
		needs_kick = virtqueue_kick_prepare(vq->vq);

	spin_unlock_irqrestore(&vq->vq_lock, flags);

	if (ret > 0)
	if (needs_kick)
		virtqueue_notify(vq->vq);
	return ret;
	return err;
}

static int virtscsi_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *sc)
@@ -467,7 +469,7 @@ static int virtscsi_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *sc)

	if (virtscsi_kick_cmd(tgt, &vscsi->req_vq, cmd,
			      sizeof cmd->req.cmd, sizeof cmd->resp.cmd,
			      GFP_ATOMIC) >= 0)
			      GFP_ATOMIC) == 0)
		ret = 0;

out: