On Mon, Nov 24, 2014 at 12:27:42AM +0000, Ben Hutchings wrote: > > copylen = vnet_hdr.hdr_len ? vnet_hdr.hdr_len : GOODCOPY_LEN; > > if (copylen > good_linear) > > copylen = good_linear; > > linear = copylen; > > - if (iov_pages(iv, vnet_hdr_len + copylen, count) > > - <= MAX_SKB_FRAGS) > > + i = *from; > > + iov_iter_advance(&i, copylen); > > + if (iov_iter_npages(&i, INT_MAX) <= MAX_SKB_FRAGS) > > The maxpages argument should be MAX_SKB_FRAGS + 1 as we don't need the > exact number. In principle, that's true, but... Do we really care? It only buys you anything if you have a monstrously fragmented iovec. And if you end up spending too considerable amount of time in that loop in iov_iter_npages, you are by definition on the slow path - it *will* fail, since we do not even try to merge adjacent iovec segments. Never had... -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html