Bug 39952

Summary: LG VL600 4G USB modem broken in 2.6.39
Product: Drivers Reporter: Mark Kamichoff (prox)
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: CLOSED CODE_FIX    
Severity: normal CC: florian
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.39 Subsystem:
Regression: Yes Bisected commit-id:

Description Mark Kamichoff 2011-07-25 00:05:45 UTC
Hi - 

It appears that upon inclusion into 2.6.39 mainline, the driver for the LG VL600 has stopped working.  The original patch for 2.6.38 can be obtained below:

https://github.com/balrog-kun/LG-VL600-utils/blob/master/lg-vl600-linux-2.6.38.patch

When patched against 2.6.38, this modem works as expected on Verizon's LTE network in the USA.  However, ever since it was included in 2.6.39 mainline, it does not work correctly.  The interface comes up correctly, but no traffic passes through the interface, including DHCP request packets.  This has been reproduced on both i386 and x86-64.

After looking into this, I managed to make it work again by doing the following:

--- linux-2.6.39-orig/drivers/net/usb/cdc_ether.c 2011-07-24 19:48:36.000000000 -0400
+++ linux-2.6.39/drivers/net/usb/cdc_ether.c 2011-07-24 19:49:27.000000000 -0400
@@ -567,7 +567,7 @@
 {
     USB_DEVICE_AND_INTERFACE_INFO(0x1004, 0x61aa, USB_CLASS_COMM,
               USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
-    .driver_info = (unsigned long)&wwan_info,
+    .driver_info = 0,
 },
 
 /*

Apparently with wwan_info being set, the lg-vl600 driver was no longer being registered correctly, and the modem is seen as a generic cdc_ether device:

[   19.462567] usb 1-1: Product: LG UDC-AHB Subsystem
[   19.476948] usb 1-1: Manufacturer: LG ELECTRONICSInc
[   19.646303] cdc_acm 1-1:1.2: ttyACM0: USB ACM device
[   19.726490] usbcore: registered new interface driver cdc_acm
[   19.743535] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
[   19.826110] cdc_ether 1-1:1.0: wwan0: register 'cdc_ether' at usb-0000:00:0f.5-1, Mobile Broadband Network Device, 64:99:5d:f7:c0:64 

With it set back to 0, the driver is correctly registered:

[   19.667135] usb 1-1: Product: LG UDC-AHB Subsystem
[   19.681527] usb 1-1: Manufacturer: LG ELECTRONICSInc
[   19.908204] cdc_acm 1-1:1.2: ttyACM0: USB ACM device
[   19.926913] usbcore: registered new interface driver cdc_acm
[   19.943957] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
[   20.056480] usbcore: registered new interface driver cdc_ether
[   20.142189] lg-vl600 1-1:1.0: eth3: register 'lg-vl600' at usb-0000:00:0f.5-1, LG VL600 modem, 64:99:5d:f7:c0:64

This regresses the fix to name the device wwanX instead of ethX, so there's probably a better way of doing this.

Let me know what other information may be useful.

- Mark
Comment 1 Andrew Morton 2011-08-01 19:11:01 UTC
(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Mon, 25 Jul 2011 00:05:48 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> https://bugzilla.kernel.org/show_bug.cgi?id=39952
> 
>            Summary: LG VL600 4G USB modem broken in 2.6.39
>            Product: Drivers
>            Version: 2.5
>     Kernel Version: 2.6.39
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: USB
>         AssignedTo: greg@kroah.com
>         ReportedBy: prox@prolixium.com
>         Regression: Yes
> 
> 
> Hi - 
> 
> It appears that upon inclusion into 2.6.39 mainline, the driver for the LG
> VL600 has stopped working.  The original patch for 2.6.38 can be obtained
> below:
> 
>
> https://github.com/balrog-kun/LG-VL600-utils/blob/master/lg-vl600-linux-2.6.38.patch
> 
> When patched against 2.6.38, this modem works as expected on Verizon's LTE
> network in the USA.  However, ever since it was included in 2.6.39 mainline,
> it
> does not work correctly.  The interface comes up correctly, but no traffic
> passes through the interface, including DHCP request packets.  This has been
> reproduced on both i386 and x86-64.
> 
> After looking into this, I managed to make it work again by doing the
> following:
> 
> --- linux-2.6.39-orig/drivers/net/usb/cdc_ether.c 2011-07-24
> 19:48:36.000000000
> -0400
> +++ linux-2.6.39/drivers/net/usb/cdc_ether.c 2011-07-24 19:49:27.000000000
> -0400
> @@ -567,7 +567,7 @@
>  {
>      USB_DEVICE_AND_INTERFACE_INFO(0x1004, 0x61aa, USB_CLASS_COMM,
>                USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
> -    .driver_info = (unsigned long)&wwan_info,
> +    .driver_info = 0,
>  },
> 
>  /*
> 
> Apparently with wwan_info being set, the lg-vl600 driver was no longer being
> registered correctly, and the modem is seen as a generic cdc_ether device:
> 
> [   19.462567] usb 1-1: Product: LG UDC-AHB Subsystem
> [   19.476948] usb 1-1: Manufacturer: LG ELECTRONICSInc
> [   19.646303] cdc_acm 1-1:1.2: ttyACM0: USB ACM device
> [   19.726490] usbcore: registered new interface driver cdc_acm
> [   19.743535] cdc_acm: v0.26:USB Abstract Control Model driver for USB
> modems
> and ISDN adapters
> [   19.826110] cdc_ether 1-1:1.0: wwan0: register 'cdc_ether' at
> usb-0000:00:0f.5-1, Mobile Broadband Network Device, 64:99:5d:f7:c0:64 
> 
> With it set back to 0, the driver is correctly registered:
> 
> [   19.667135] usb 1-1: Product: LG UDC-AHB Subsystem
> [   19.681527] usb 1-1: Manufacturer: LG ELECTRONICSInc
> [   19.908204] cdc_acm 1-1:1.2: ttyACM0: USB ACM device
> [   19.926913] usbcore: registered new interface driver cdc_acm
> [   19.943957] cdc_acm: v0.26:USB Abstract Control Model driver for USB
> modems
> and ISDN adapters
> [   20.056480] usbcore: registered new interface driver cdc_ether
> [   20.142189] lg-vl600 1-1:1.0: eth3: register 'lg-vl600' at
> usb-0000:00:0f.5-1, LG VL600 modem, 64:99:5d:f7:c0:64
> 
> This regresses the fix to name the device wwanX instead of ethX, so there's
> probably a better way of doing this.
> 
> Let me know what other information may be useful.
>
Comment 2 Florian Mickler 2012-01-12 21:54:06 UTC
A patch referencing this bug report has been merged in Linux v3.2-rc3:

commit 6d74eb9442fb113c97edc88a1c658462db711337
Author: Mark Kamichoff <prox@prolixium.com>
Date:   Wed Nov 9 11:48:10 2011 +0000

    net/usb: Misc. fixes for the LG-VL600 LTE USB modem
Comment 3 Greg Kroah-Hartman 2012-02-22 21:22:05 UTC
All USB bugs should be sent to the linux-usb@vger.kernel.org mailing 
list, and not entered into bugzilla.  Please bring this issue up there,
if it is still a problem in the latest kernel release.
Comment 4 Florian Mickler 2012-02-23 22:14:00 UTC
Let's assume it's fixed by the patch above.