On Saturday 09 February 2008 10:51:06 David Brownell wrote:
> So I'd rather see a one-line fix to the RNDIS host code, instead of
> this more elaborate approach.  Could you give that a try?

So here is the new proposal.

Signed-off-by: Jean-Christophe Dubois <[EMAIL PROTECTED]>
---

diff -ruN linux-source-2.6.24/drivers/net/usb/rndis_host.c 
linux-source-2.6.24.new/drivers/net/usb/rndis_host.c
--- linux-source-2.6.24/drivers/net/usb/rndis_host.c    2008-01-24 
11:52:31.000000000 +0100
+++ linux-source-2.6.24.new/drivers/net/usb/rndis_host.c        2008-02-11 
17:43:48.000000000 +0100
@@ -499,8 +499,18 @@
        net->hard_header_len += sizeof (struct rndis_data_hdr);
        dev->hard_mtu = net->mtu + net->hard_header_len;
 
+       /* now we need to compute dev->maxpacket */
+       dev->maxpacket = usb_maxpacket (dev->udev, dev->out, 1);
+
+       if (dev->maxpacket == 0) {
+               dev_err(&intf->dev, "dev->maxpacket can't be 0\n");
+               retval = -EINVAL;
+               goto fail_and_release;
+       }
+
        dev->rx_urb_size = dev->hard_mtu + (dev->maxpacket + 1);
        dev->rx_urb_size &= ~(dev->maxpacket - 1);
+
        u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size);
 
        net->change_mtu = NULL;
-
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