提交 7f03b17d 编写于 作者: H Heinz Graalfs 提交者: Rusty Russell

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: NHeinz Graalfs <graalfs@linux.vnet.ibm.com>
Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
上级 b3b32c94
...@@ -292,6 +292,8 @@ static void virtblk_done(struct virtqueue *vq) ...@@ -292,6 +292,8 @@ static void virtblk_done(struct virtqueue *vq)
req_done = true; req_done = true;
} }
} }
if (unlikely(virtqueue_is_broken(vq)))
break;
} while (!virtqueue_enable_cb(vq)); } while (!virtqueue_enable_cb(vq));
/* In case queue is stopped waiting for more buffers. */ /* In case queue is stopped waiting for more buffers. */
if (req_done) if (req_done)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册