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