diff options
| author | Rusty Russell <rusty@rustcorp.com.au> | 2012-10-16 09:26:16 -0400 |
|---|---|---|
| committer | Rusty Russell <rusty@rustcorp.com.au> | 2012-12-17 23:50:37 -0500 |
| commit | 4614e51cccca0eb42ff7b1b6383e2d07db42edc8 (patch) | |
| tree | 3296724337388eedd8c7d9066b7299a9e5595fa5 | |
| parent | 57e1a37347d31c6b5c34eda1ecb2272f1803323d (diff) | |
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: Rusty Russell <rusty@rustcorp.com.au>
| -rw-r--r-- | drivers/scsi/virtio_scsi.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c index 595af1ae4421..d5f9f4516d88 100644 --- a/drivers/scsi/virtio_scsi.c +++ b/drivers/scsi/virtio_scsi.c | |||
| @@ -215,7 +215,7 @@ static void virtscsi_ctrl_done(struct virtqueue *vq) | |||
| 215 | static int virtscsi_kick_event(struct virtio_scsi *vscsi, | 215 | static int virtscsi_kick_event(struct virtio_scsi *vscsi, |
| 216 | struct virtio_scsi_event_node *event_node) | 216 | struct virtio_scsi_event_node *event_node) |
| 217 | { | 217 | { |
| 218 | int ret; | 218 | int err; |
| 219 | struct scatterlist sg; | 219 | struct scatterlist sg; |
| 220 | unsigned long flags; | 220 | unsigned long flags; |
| 221 | 221 | ||
| @@ -223,13 +223,14 @@ static int virtscsi_kick_event(struct virtio_scsi *vscsi, | |||
| 223 | 223 | ||
| 224 | spin_lock_irqsave(&vscsi->event_vq.vq_lock, flags); | 224 | spin_lock_irqsave(&vscsi->event_vq.vq_lock, flags); |
| 225 | 225 | ||
| 226 | ret = virtqueue_add_buf(vscsi->event_vq.vq, &sg, 0, 1, event_node, GFP_ATOMIC); | 226 | err = virtqueue_add_buf(vscsi->event_vq.vq, &sg, 0, 1, event_node, |
| 227 | if (ret >= 0) | 227 | GFP_ATOMIC); |
| 228 | if (!err) | ||
| 228 | virtqueue_kick(vscsi->event_vq.vq); | 229 | virtqueue_kick(vscsi->event_vq.vq); |
| 229 | 230 | ||
| 230 | spin_unlock_irqrestore(&vscsi->event_vq.vq_lock, flags); | 231 | spin_unlock_irqrestore(&vscsi->event_vq.vq_lock, flags); |
| 231 | 232 | ||
| 232 | return ret; | 233 | return err; |
| 233 | } | 234 | } |
| 234 | 235 | ||
| 235 | static int virtscsi_kick_event_all(struct virtio_scsi *vscsi) | 236 | 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, | |||
| 410 | { | 411 | { |
| 411 | unsigned int out_num, in_num; | 412 | unsigned int out_num, in_num; |
| 412 | unsigned long flags; | 413 | unsigned long flags; |
| 413 | int ret; | 414 | int err; |
| 415 | bool needs_kick = false; | ||
| 414 | 416 | ||
| 415 | spin_lock_irqsave(&tgt->tgt_lock, flags); | 417 | spin_lock_irqsave(&tgt->tgt_lock, flags); |
| 416 | virtscsi_map_cmd(tgt, cmd, &out_num, &in_num, req_size, resp_size); | 418 | virtscsi_map_cmd(tgt, cmd, &out_num, &in_num, req_size, resp_size); |
| 417 | 419 | ||
| 418 | spin_lock(&vq->vq_lock); | 420 | spin_lock(&vq->vq_lock); |
| 419 | ret = virtqueue_add_buf(vq->vq, tgt->sg, out_num, in_num, cmd, gfp); | 421 | err = virtqueue_add_buf(vq->vq, tgt->sg, out_num, in_num, cmd, gfp); |
| 420 | spin_unlock(&tgt->tgt_lock); | 422 | spin_unlock(&tgt->tgt_lock); |
| 421 | if (ret >= 0) | 423 | if (!err) |
| 422 | ret = virtqueue_kick_prepare(vq->vq); | 424 | needs_kick = virtqueue_kick_prepare(vq->vq); |
| 423 | 425 | ||
| 424 | spin_unlock_irqrestore(&vq->vq_lock, flags); | 426 | spin_unlock_irqrestore(&vq->vq_lock, flags); |
| 425 | 427 | ||
| 426 | if (ret > 0) | 428 | if (needs_kick) |
| 427 | virtqueue_notify(vq->vq); | 429 | virtqueue_notify(vq->vq); |
| 428 | return ret; | 430 | return err; |
| 429 | } | 431 | } |
| 430 | 432 | ||
| 431 | static int virtscsi_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *sc) | 433 | 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) | |||
| 467 | 469 | ||
| 468 | if (virtscsi_kick_cmd(tgt, &vscsi->req_vq, cmd, | 470 | if (virtscsi_kick_cmd(tgt, &vscsi->req_vq, cmd, |
| 469 | sizeof cmd->req.cmd, sizeof cmd->resp.cmd, | 471 | sizeof cmd->req.cmd, sizeof cmd->resp.cmd, |
| 470 | GFP_ATOMIC) >= 0) | 472 | GFP_ATOMIC) == 0) |
| 471 | ret = 0; | 473 | ret = 0; |
| 472 | 474 | ||
| 473 | out: | 475 | out: |
