Rusty Russell <[email protected]> writes:
> "Michael S. Tsirkin" <[email protected]> writes:
>>> +           iov->iov[iov->i].iov_base = (__force __user void *)addr;
>>> +           iov->iov[iov->i].iov_len = desc.len;
>>
>> The following comment from the previous version still applies:
>>      > This looks like it won't do the right thing if desc.len spans multiple
>>      > ranges. I don't know if this happens in practice but this is something
>>      > vhost supports ATM.
>> in otgher words, we might need to split a single desc to multiple
>> iov entries.
>
> Ah, separate offsets for consecutive ranges, right.  I'd prefer to say
> "don't do that", but qemu is rarely sane.  I'll fix it.

Actually, you make the same assumption for vhost, with your use of
getuser and putuser for accessing the ring.

The complexity and cost of handling this is significant, and the error
if it ever did happen is distinctive.  Does qemu ever create such
things?

Thanks,
Rusty.
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to