Re: 2.6.33 bugs (USBFS, Intel graphic)

From: Markus Rechberger
Date: Fri Feb 26 2010 - 23:34:34 EST


On Sat, Feb 27, 2010 at 5:29 AM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>
> On Fri, 26 Feb 2010, Greg KH wrote:
>>
>> Yes, and that patch didn't touch the iso frames.  That happens later on
>> in the functions that were modified.  The patch should not have had any
>> affect on iso transfers.  Unless I'm missing something?
>
> Hmm. What seems to happen is that for an isochronous transfer, the buffer
> is split for each microframe. No?
>

exactly. and each microframe has its own buffer length identifier.

the current behaviour breaks VMware, QEMU and virtualbox .. probably
other things too.


> So the total length may be in 'urb->actual_length', but the actual data in
> the buffer may not be contiguous, because it's created from multiple
> smaller frames, some of which might not be full length?
>

yes, it's only contiguous for BULK.

> I dunno. That would explain the problem - actual_length is correct, but
> the 'copy_to_user()' still doesn't copy all the data, because it's
> fragmented.
>

no you got it, but your patch does not work. The best way would be to
revert it if someone wants to speed up BULK it should go down another
path, leaving the old working implementation untouched.

Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/