RE: [PATCH net 1/2] r8152: fix the sw rx checksum is unavailable

From
Hayes Wang <hidden>
Date
2016-11-25 09:52:50
Also in
lkml
Reply to
Mark Lord, 2016-11-24
Mark Lord [mailto:mlord@pobox.com]
Sent: Friday, November 25, 2016 3:11 AM
[...]
On 16-11-24 02:00 PM, Greg KH wrote:
quoted
On Thu, Nov 24, 2016 at 01:34:08PM -0500, Mark Lord wrote:
quoted
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.
quoted
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.
What is the value of /sys/bus/usb/devices/.../power/control ?
Could you make sure it is "on" and try again?
Or you could call usb_disable_autosuspend() in probe().

Best Regards,
Hayes

Thread (63 messages) 63 messages, 9 authors, 2019-01-07
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help