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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]