"Michael S. Tsirkin" <mst@xxxxxxxxxx> writes: > On Fri, Sep 05, 2014 at 12:40:50PM +0200, Paolo Bonzini wrote: >> Il 03/09/2014 06:29, Rusty Russell ha scritto: >> > + sg_init_table(rq->sg, MAX_SKB_FRAGS + 2); >> >> I think 2 is enough here. That said... >> >> > sg_set_buf(rq->sg, &hdr->hdr, sizeof hdr->hdr); >> > - >> > skb_to_sgvec(skb, rq->sg + 1, 0, skb->len); >> > >> > err = virtqueue_add_inbuf(rq->vq, rq->sg, 2, skb, gfp); >> >> ... skb_to_sgvec will already make the sg well formed, so the >> sg_init_table is _almost_ redundant; it is only there to remove >> intermediate end marks. The block layer takes care to remove >> them, but skb_to_sgvec doesn't. sg_init_table is still needed if CONFIG_DEBUG_SG, so I don't think it's worth it. Thanks, Rusty. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization