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