Some RNDIS devices include a bogus CDC Union descriptor pointing
to non-existing interfaces.  The RNDIS code is already prepared
to handle devices without a CDC Union descriptor, so we can just
ignore it.

Cc: Markus Kolb <linux-201...@tower-net.de>
Cc: Iker Salmón San Millán <sha...@esdebian.org>
Cc: Jonathan Nieder <jrnie...@gmail.com>
Cc: Oliver Neukum <oli...@neukum.name>
Cc: 655...@bugs.debian.org
Cc: sta...@vger.kernel.org
Signed-off-by: Bjørn Mork <bj...@mork.no>
---
How about this, which IMHO is less intrusive? Only build-tested, as I
don't have any of the failing devices, so it will obviously need 
testing from anyone with such a device.
 
 drivers/net/usb/cdc_ether.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index 41a61ef..2109f34 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -195,7 +195,15 @@ int usbnet_generic_cdc_bind(struct usbnet *dev, struct 
usb_interface *intf)
                                        info->control,
                                        info->u->bSlaveInterface0,
                                        info->data);
-                               goto bad_desc;
+                               /* Fallback to guessing for rndis
+                                * class devices with bogus union
+                                * descriptor.
+                                * Fixes some Samsung Android devices
+                                */
+                               if (rndis)
+                                       info->u = NULL;
+                               else
+                                       goto bad_desc;
                        }
                        if (info->control != intf) {
                                dev_dbg(&intf->dev, "bogus CDC Union\n");
-- 
1.7.7.3




--
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1326233716-11083-1-git-send-email-bj...@mork.no

Reply via email to