Re: [PATCH v2] usb: ffs: fix regression when quirk_ep_out_aligned_size flag is set

From: Felipe Balbi
Date: Sun Oct 12 2014 - 15:59:21 EST


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