aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/virtio_blk.c
diff options
context:
space:
mode:
authorHeinz Graalfs <graalfs@linux.vnet.ibm.com>2013-10-28 19:10:30 -0400
committerRusty Russell <rusty@rustcorp.com.au>2013-10-28 20:58:17 -0400
commit7f03b17d5c3f3b63dcacf0e481cf94c9d07267ab (patch)
tree338af05a9b2456350b84858b314d101c9c71fc5a /drivers/block/virtio_blk.c
parentb3b32c94133621c9ba7e4c8f29ec7533f2f4d8ec (diff)
virtio_blk: verify if queue is broken after virtqueue_get_buf()
In case virtqueue_get_buf() returned with a NULL pointer verify if the virtqueue is broken in order to leave while loop. Signed-off-by: Heinz Graalfs <graalfs@linux.vnet.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/block/virtio_blk.c')
-rw-r--r--drivers/block/virtio_blk.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 6b66252fc4e6..f3be496ac8fa 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -292,6 +292,8 @@ static void virtblk_done(struct virtqueue *vq)
292 req_done = true; 292 req_done = true;
293 } 293 }
294 } 294 }
295 if (unlikely(virtqueue_is_broken(vq)))
296 break;
295 } while (!virtqueue_enable_cb(vq)); 297 } while (!virtqueue_enable_cb(vq));
296 /* In case queue is stopped waiting for more buffers. */ 298 /* In case queue is stopped waiting for more buffers. */
297 if (req_done) 299 if (req_done)