On Wednesday 02 January 2008, Oliver Neukum wrote:
> Hi,
> 
> it looks like this RNDIS derived devices really needs jumbo frames.
> What is to be done?

I'm not sure there's a realistic expectation that 16 KBytes can
regularly be allocated through the network stack ... and I'm fairly
sure the rndis_host code won't actually unbundle all the Ethernet
packets that would be bundled into such a huge buffer!

I'd like to see some developer in Europe (i.e. one who can benefit
from the EU interop agreements with MSFT) get the documentation on
ActiveSync, to see exactly what it's supposed to be doing.  It's
clear that it doesn't conform to the (incomplete/inaccurate) RNDIS
specs, but there should be more information in the ActiveSync docs.


> http://bugzilla.kernel.org/show_bug.cgi?id=8094
> 
> ------- Comment #32 from [EMAIL PROTECTED]  2008-01-01 16:34 -------
> Today i tested now.
> 
> this patch helped me :-)
> http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch

That is:

> --- linux-2.6.22-rc3-orig/drivers/net/usb/rndis_host.c        2007-05-25
> 22:55:14.000000000 -0400 +++
> linux-2.6.22-rc3/drivers/net/usb/rndis_host.c 2007-05-27 17:06:16.000000000
> -0400 @@ -499,8 +499,7 @@
>       net->hard_header_len += sizeof (struct rndis_data_hdr);
>       dev->hard_mtu = net->mtu + net->hard_header_len;
>
> -     dev->rx_urb_size = dev->hard_mtu + (dev->maxpacket + 1);
> -     dev->rx_urb_size &= ~(dev->maxpacket - 1);
> +     dev->rx_urb_size = (dev->udev->speed == USB_SPEED_FULL) ? 16384 : 8192;
>       u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size);
>
>       net->change_mtu = NULL;

Looks broken in more ways than just assuming huge packets can be sent/received.
High speed devices need less buffering than full speed ones???
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to