On Mon, Dec 10, 2012 at 02:09:37PM +0100, Stefan Hajnoczi wrote:
> + iov->iov_base = hostmem_lookup(&vring->hostmem, desc.addr, desc.len,
> + desc.flags & VRING_DESC_F_WRITE);
> + if (!iov->iov_base) {
> + error_report("Failed to map indirect descriptor"
> + "addr %#" PRIx64 " len %u",
> + (uint64_t)desc.addr, desc.len);
> + vring->broken = true;
> + return -EFAULT;
> + }
> + iov->iov_len = desc.len;
> + iov++;
Hmm, this assumes a descriptor can not cross a memory
region boundary. Is this really guaranteed?
vhost does not make such assumptions.
--
MST