With indirect vring descriptors, one can no longer assume that the maximum number of requests is VRING_MAX / 2 (outhdr and inhdr). Now a single indirect descriptor can contain the outhdr and inhdr so max requests becomes VRING_MAX.
Signed-off-by: Stefan Hajnoczi <[email protected]> --- hw/virtio-blk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c index 591eace..7ae3c56 100644 --- a/hw/virtio-blk.c +++ b/hw/virtio-blk.c @@ -26,7 +26,9 @@ enum { SEG_MAX = 126, /* maximum number of I/O segments */ VRING_MAX = SEG_MAX + 2, /* maximum number of vring descriptors */ - REQ_MAX = VRING_MAX / 2, /* maximum number of requests in the vring */ + REQ_MAX = VRING_MAX, /* maximum number of requests in the vring, + * is VRING_MAX / 2 with traditional and + * VRING_MAX with indirect descriptors */ }; typedef struct { -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
