qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 9/9] virtio-blk: Fix and clean up the in_sg a


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v3 9/9] virtio-blk: Fix and clean up the in_sg and out_sg check
Date: Fri, 6 Jun 2014 15:16:49 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On Fri, Jun 06, 2014 at 09:53:30AM +0800, Fam Zheng wrote:
> @@ -353,19 +355,18 @@ static void virtio_blk_handle_request(VirtIOBlockReq 
> *req,
>          exit(1);
>      }
>  
> -    if (req->elem->out_sg[0].iov_len < sizeof(req->out) ||
> -        req->elem->in_sg[req->elem->in_num - 1].iov_len < sizeof(*req->in)) {
> -        error_report("virtio-blk header not in correct element");
> -        exit(1);
> -    }
> -
>      if (unlikely(iov_to_buf(iov, out_num, 0, &req->out,
>                              sizeof(req->out)) != sizeof(req->out))) {
>          error_report("virtio-blk request outhdr too short");
>          exit(1);
>      }
>      iov_discard_front(&iov, &out_num, sizeof(req->out));
> -    req->in = (void *)req->elem->in_sg[req->elem->in_num - 1].iov_base;
> +    assert(in_iov[in_num - 1].iov_len >=
> +           sizeof(struct virtio_blk_inhdr));

Why use assert() when the rest of the function uses error_report() +
exit(1)?  Please keep the code consistent.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]