Messages in this thread | | | Subject | Re: [PATCH net 1/2] r8152: fix the sw rx checksum is unavailable | From | Mark Lord <> | Date | Thu, 24 Nov 2016 14:10:36 -0500 |
| |
On 16-11-24 02:00 PM, Greg KH wrote: > On Thu, Nov 24, 2016 at 01:34:08PM -0500, Mark Lord wrote: >> One thought: bulk data streams are byte streams, not packets. >> Scheduling on the USB bus can break up larger transfers across >> multiple in-kernel buffers. A "real" URB buffer on USB2 is max 512 bytes. >> The driver is providing 16384-byte buffers, and assumes that data will >> never spill over from one such buffer to the next. >> Yet the observations here consistently show otherwise. > > Wait, how do you know that data will not spill over? What is making > that guarantee? Will the USB device send a "zero packet" in order to > show that all of the "logical" data is now sent for this specific > endpoint? Is there some sort of "framing" that the device does with the > USB data so that the driver "knows" where the end of packet is?
Exactly my point.
> Check the zero-packet stuff for this device, that's tripped up many a > USB driver writer over the years, myself included.
I haven't tripped over it myself, but only because we were careful to allow for such in the USB drivers I have worked on.
The r8152 driver just assumes it never happens.
| |