On Sun, Oct 12, 2014 at 08:12:28PM +0100, Al Viro wrote:
> On Wed, Oct 08, 2014 at 02:12:18PM -0700, David Cohen wrote:
> >             use_mm(io_data->mm);
> >             for (i = 0; i < io_data->nr_segs; i++) {
> > +                   size_t len = min_t(size_t, ret - pos,
> > +                                   io_data->iovec[i].iov_len);
> > +                   if (!len)
> > +                           break;
> >                     if (unlikely(copy_to_user(io_data->iovec[i].iov_base,
> > -                                            &io_data->buf[pos],
> > -                                            io_data->iovec[i].iov_len))) {
> > +                                            &io_data->buf[pos], len))) {
> >                             ret = -EFAULT;
> >                             break;
> >                     }
> > -                   pos += io_data->iovec[i].iov_len;
> > +                   pos += len;
> 
> Hmm...  This is really asking for something like
>       if (copy_to_iter(io_data->buf, ret, <something>) != ret)
>               ret = -EFAULT;
> with <something> being an iov_iter instead of iovec.  It would be really
> nice to have that thing switched to ->read_iter/->write_iter, dropping
> ->read/->write/->aio_read/->aio_write; I'm not familiar enough with that
> code to do it on my own, though, so it would require some help from
> maintainers...

cool, Michal, if you're too busy lately, I can look at that one myself.
I suppose the test application we have under tool/usb is good enough for
validation ?

cheers

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to