In both 2.4 CDCEther.c and 2.5 cdc-ether.c, there is this bit of
code in the start_xmit function:
// If we are told to transmit an ethernet frame that fits EXACTLY
// into an integer number of USB packets, we force it to send one
// more byte so the device will get a runt USB packet signalling the
// end of the ethernet frame
if ( (skb->len) ^ (ether_dev->data_ep_out_size) ) {
// It was not an exact multiple
// no need to add anything extra
count = skb->len;
} else {
// Add one to make it NOT an exact multiple
count = skb->len + 1;
}
The logic seem to be wrong. I suspect the ^ in the test
should actually be a %.
Fixing this appear to fix a packet loss problem with a
device I'm working on.
Also, shouldn't we just complete the frame with a zero-lenght
packet or is this a problem with some hci's
Ben.
-------------------------------------------------------
This sf.net email is sponsored by:
To learn the basics of securing your web site with SSL,
click here to get a FREE TRIAL of a Thawte Server Certificate:
http://www.gothawte.com/rd522.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel